我有一个类似于:
的XML<drawing><some other tags><Picture><some other tags></drawing><drawing><some other tags><Chart><some other tags></drawing>
我想提取
<drawing><some other tags><Chart><some other tags></drawing>
目前我正在使用此RegExp:
/<drawing>.*?<Chart>.*?</drawing>/g
然而,它返回了整个XML,因为它也是有效的。但我只希望第二次出现,而无法达到解决方案。 提前谢谢。
答案 0 :(得分:1)
关于使用正则表达式解析xml的所有免责声明,如果你想要一个正则表达式解决方案,请使用:
<drawing>(?:(?!</drawing>).)*?<Chart>.*?</drawing>
在 the Regex Demo 中查看匹配。
<强>解释强>
<drawing>
匹配文字字符(?:(?!</drawing>).)
匹配一个未启动的字符</drawing>
*?
懒洋洋地重复这场比赛直到...... <Chart>
匹配文字字符.*?
lazily匹配chars直到...... </drawing>