正则表达式:仅匹配xml结构中的一个元素

时间:2018-11-15 17:29:34

标签: regex

我有一个XML结构,我想在其中匹配包含###DoNotUse###字符串的单个数据元素元素。

在示例中,它应该与数据元素CE相匹配。

但是我的RegEx还会匹配我需要的匹配之前的所有数据元素,这意味着A+B+C而不是C,而D+E而不是E。 / p>

非常感谢您的帮助。

我的RegEx是:

<data(.*?)###DoNotUse###(.*?)</data>

示例数据为:

<data name="A">
    <value>A</value>
<comment>Bla Bla</comment>
</data>
<data name="B">
    <value>B</value>
</data>
<data name="C">
    <value>###DoNotUse###</value>
    <comment>Bla Bla</comment>
</data>
<data name="D">
    <value>D</value>
    <comment>Bla Bla</comment>
</data>
<data name="E">
    <value>###DoNotUse###</value>
</data>

1 个答案:

答案 0 :(得分:0)

您正在寻找:

(?s)<data name="([^"]*)">(?:(?!data).)*DoNotUse

(?s)用于单行模式。您可以找到演示和说明HERE: DEMO