我正在使用XML文件,并试图找到一个我认为简单的解决方案,但语法很难找到。
<data>
<hauptknoten>
<zweiterknoten>
<subknoten3>sub3textTagInput</subknoten3>
</zweiterknoten>
<zweiterknoten>
<subknoten4>sub4textTagInput</subknoten4>
</zweiterknoten>
</hauptknoten>
</data>
&#13;
正如我们在XML文件中看到的那样,有
</zweiterknoten>
<zweiterknoten>
我试过var pattern:RegExp =/\w+(<\/(\w+)(>))(<(\w+)(>))/
还有var pattern:RegExp = (?:<\/(\w+)(>))(<(\w+)(>))*?
但这些不匹配。
我很确定有一个解决方案,任何人都可以帮助我吗?
答案 0 :(得分:2)
作为标准警告,您不能使用正则表达式解析层次结构数据(例如XML或HTML)。这并不是说你不能用正则表达式来做有用的事情,但是不可能以强有力的方式完全解析它。
要查找您要查找的内容(结束标记,后跟空格,后跟匹配的开放标记),您可以使用此选项:
/<\/(\w+)>\s*<\1>/g
标记名称由第一个组捕获,然后在结尾处再次匹配(\1
)。
如果您只想找到特定的元素,只需替换\w+
:
/<\/(zweiterknoten)>\s*<\1>/g