java - 在自定义标签之间查找是否有文本

标签 java regex

在下面的代码中我可以找到 <p|a|s>hello there</> 之间的任何文本比如获取p|a|shello there没有任何问题

   Pattern mftA_REGEX = Pattern.compile("<(.+?)>(.+?)</>");
   Matcher matcher = mftA_REGEX.matcher("<p|a|s>hello there</>");
   if (matcher.find()) {
       Log.e("tag ",matcher.group(1));
       Log.e("text ",matcher.group(2));
   }

现在当我没有p|a|s时就像 <>hello there</>匹配器找不到。在我的字符串中p|a|s是可选的,我该如何更改Pattern.compile("<(.+?)>(.+?)</>");解决这个问题?

最佳答案

组上的可选 ? 应该位于组之外,即在 ) 之后:

<(.+)?>

或者如果你想匹配空字符串,那么:

<(.*)>

请参阅 Regex101.com 上的工作示例

关于java - 在自定义标签之间查找是否有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43283572/

相关文章:

java - 如何在特定日期在java中运行 future 的任务

Java 等价于 C# 的 TimeSpan

java - Spring XML 模式中的错误 "No setter found for property ' oAuth2RequestValidator'"

regex - 正则表达式 rel 标签

正则表达式 - 多行问题

java - 设置无法删除重复项

java - 如何使用多短语查询?

Java仅从字符串中提取第一个字母/字符

regex - Medicare MBI 数字格式的正则表达式

javascript - RegEx 用单个字符替换可变数量的字符