在一个正则表达式中提取子元素子集

时间:2014-02-11 10:07:18

标签: regex splunk

我有一个带有多个元素2的xml(可以是0或更多......)

我怎样才能从

中提取出来
<xml><element1></element1><element2></element2><element2></element2><element3></element3>

OR

<xml><element1></element1><element3></element3>

得到 部件1,element2的,element2的,元素3 要么 元素1,元素3

我试过

(?P<element1>.*?)(?P<element2><element2>.*(?!</element2>)*)(?P<element3>.*)

在两种情况下都不起作用......

它用于Splunk,所以我只能做正则表达式,而不是代码......

1 个答案:

答案 0 :(得分:0)

你想要一个正则表达式替换:

查找: (.*?)(<([^>]+?)\/?>.*?(?:<\/\s*\3\s*>)?)

替换: $3,

演示

http://regex101.com/r/xA8uK4