在下面的代码中,我可以找到<p|a|s>hello there</>
之间的任何文字,例如get p|a|s
和hello 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("<(.+?)>(.+?)</>");
以解决此问题?
答案 0 :(得分:2)
群组中的可选<ItemGroup>
<MyImageContent Include="Image.png">
<OutputName>MyImage.png</OutputName>
<TargetResX>512</TargetResX>
<TargetResY>256</TargetResY>
</MyImageContent>
</ItemGroup>
应位于群组之外,即?
之后:
)
或者如果你想匹配空字符串,那么:
<(.+)?>
请参阅Regex101.com
上的工作示例