[英]Regex for specific XML Elements
在我的C#应用程序中,我试图通过使用正则表达式将其过滤掉来删除一些XML元素。
我的输入例如:
<myXMLTag id="Text1.Text2.Text3">
<Anything/>
</myXMLTag>
<myXMLTag id="Text1.ISHOULDNOTBEHERE.Text3">
<Anything/>
</myXMLTag>
<myXMLTag id="Text1.Text2.Text3">
<Anything/>
</myXMLTag>
我在http://regexstorm.net/tester上尝试了一些正则表达式,但是它总是以某种方式标记前两个<myXMLTag>
而不只是中间的一个。
图案:
<myXMLTag.*Text1.+(ISHOULDNOTBEHERE)+.*?</(myXMLTag)>
我需要一个模式,该模式只能在XML字符串中找到XML元素,看起来像中间的一个。
关于使用正则表达式解析XML的问题的标准答案是
这个答案似乎是最重要的,但这是有道理的:我们大多数人已经看到,如果尝试这种方法,可能会导致灾难性的后果。 基本上,任何尝试使用正则表达式来处理XML的程序都会很慢且容易出错。 如果您想快速获得结果并且不介意错误,请继续-并确保您在项目中的停留时间不够长,以免造成后果。
使用XML解析器,这是完成任务的正确工具。
这有点难看,但是只要您尊重示例中的模式,它就应该起作用:
.+ISHOULDNOTBEHERE.+\n.+\n<\/myXMLTag>
在这里测试regex101
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.