我想在文本中找到 x 类型的 xml 标签
- 为空(仅包含空格)
- 可能有也可能没有属性
也是这样的
<x> </x>
<x a="v"> </x>
我将以下正则表达式与 Matcher 查找函数结合使用。
<x.*?> +</x>
我得到了我没想到的比赛。请参阅以下测试用例
@Test
public void sample() throws Exception
{
String text = "Lorem <x>ipsum <x>dolor sit amet</x> </x>";
String regex = "<x.*?> +</x>";
Matcher matcher = Pattern.compile(regex).matcher(text);
assertFalse(matcher.find());
}
测试失败。相反,这是真的
assertTrue(matcher.find());
assertEquals("<x>ipsum <x>dolor sit amet</x> </x>", matcher.group());
find 函数是否不支持非贪婪运算符或这里出了什么问题?
PS 我知道有很多不同的方法来处理 xml 数据。但这不是重点。