xml中的regexp与整个XML匹配

时间:2015-02-03 17:35:58

标签: regex

我有以下xml:

<a>
  <y>2</y>
  <x>2</x>
</a>
<a>
  <x>1</x>
  <y>1</y>
</a>

我想检索其中包含a的所有<x>1</x>代码。

我使用<a>(.+?)<x>1</x>(.+?)</a>,但这也匹配我的整个XML文件。

1 个答案:

答案 0 :(得分:1)

您实际上可以使用基于正则表达式的负向前瞻(在Jmeter正则表达式中支持)来解决此问题:

<a>((?:(?!</a>).)+?)<x>1</x>((?:(?!</a>).)+?)</a>

RegEx Demo

此处((?:(?!</a>).)+?)是基于负面预测的匹配,只有在</a>后面没有匹配时才匹配下一个字符,从而确保在给定示例中匹配第二个<a>...</a>块。