如果标签之间有文本,则在自定义标签之间查找

时间:2017-04-07 17:03:29

标签: java regex

在下面的代码中,我可以找到<p|a|s>hello there</>之间的任何文字,例如get 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("<(.+?)>(.+?)</>");以解决此问题?

1 个答案:

答案 0 :(得分:2)

群组中的可选<ItemGroup> <MyImageContent Include="Image.png"> <OutputName>MyImage.png</OutputName> <TargetResX>512</TargetResX> <TargetResY>256</TargetResY> </MyImageContent> </ItemGroup> 应位于群组之外,即?之后:

)

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

<(.+)?>

请参阅Regex101.com

上的工作示例