xml过滤中的正则表达式双条目

时间:2016-04-28 15:03:26

标签: regex xml

我正在使用XML文件,并试图找到一个我认为简单的解决方案,但语法很难找到。



<data>
  <hauptknoten>
    <zweiterknoten>
      <subknoten3>sub3textTagInput</subknoten3>
    </zweiterknoten>
    <zweiterknoten>
      <subknoten4>sub4textTagInput</subknoten4>
    </zweiterknoten>
  </hauptknoten>
</data>
&#13;
&#13;
&#13;

正如我们在XML文件中看到的那样,有

</zweiterknoten>
<zweiterknoten>

我试过var pattern:RegExp =/\w+(<\/(\w+)(>))(<(\w+)(>))/ 还有var pattern:RegExp = (?:<\/(\w+)(>))(<(\w+)(>))*? 但这些不匹配。

我很确定有一个解决方案,任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

作为标准警告,您不能使用正则表达式解析层次结构数据(例如XML或HTML)。这并不是说你不能用正则表达式来做有用的事情,但是不可能以强有力的方式完全解析它。

要查找您要查找的内容(结束标记,后跟空格,后跟匹配的开放标记),您可以使用此选项:

/<\/(\w+)>\s*<\1>/g

标记名称由第一个组捕获,然后在结尾处再次匹配(\1)。

如果您只想找到特定的元素,只需替换\w+

/<\/(zweiterknoten)>\s*<\1>/g