使用RegEx获取实际的XML标记

时间:2014-07-29 12:19:56

标签: xml regex

我有一个类似于:

的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,因为它也是有效的。但我只希望第二次出现,而无法达到解决方案。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

关于使用正则表达式解析xml的所有免责声明,如果你想要一个正则表达式解决方案,请使用:

<drawing>(?:(?!</drawing>).)*?<Chart>.*?</drawing>

the Regex Demo 中查看匹配。

<强>解释

  • <drawing>匹配文字字符
  • (?:(?!</drawing>).)匹配一个未启动的字符</drawing>
  • *?懒洋洋地重复这场比赛直到......
  • <Chart>匹配文字字符
  • .*? lazily匹配chars直到......
  • </drawing>