给定以下 XML 文档:
<root>
<myGoodSection
some="attr"
another="attr"
/>
<myBadSection yet="anotherattr" />
</root>
如何/>
使用正则表达式返回第一个?到目前为止,我已经能够使用以下表达式非常接近:
(?ims)(?<=<myGoodSection.*?)/>
但是,这将匹配/>
第一次出现<myGoodSection
. 我还尝试将它与消极的后视相结合,以使表达式不贪婪,但它似乎没有任何效果:
(?ims)(?<=<myGoodSection.*?)(?<!/>)/>
编辑:
我正在使用基于 C# 构建的工具来处理正则表达式替换。如果我直接使用,我无法控制我可以使用或不使用多少匹配System.Text.RegularExpressions
项。我在这里引用 C# 来阐明我使用的引擎支持的功能。
是的,我知道作为一般做法,我不应该使用 RegEx 来解析 XML。让我们规定,鉴于我目前的范围、要求和约束,这是一个完全可以接受的解决方案(假设实际上有一种方法可以实现它)。