【发布时间】:2017-08-24 06:14:08
【问题描述】:
我需要一个用于 notepad++ 的正则表达式来匹配除 XML 之外的所有内容
我正在使用的正则表达式:
(!?\<.*\>)
示例代码:
[20173003] This text is what I want to delete [<Person><Name>Foo</Name><Surname>Bar</Surname></Person>], and this text too.
[20173003] This is another text to delete [<Person><Name>Bar</Name><Surname>Foo</Surname></Person>]
[20173003] This text too... [<Person><Name>Lorem</Name><Surname>Ipsum</Surname></Person>], delete me!
[20173003] But things like this make the regex to fail < [<Person><Name>Lorem</Name><Surname>Ipsum</Surname></Person>], or this>
预期结果:
<Person><Name>Foo</Name><Surname>Bar</Surname></Person>
<Person><Name>Bar</Name><Surname>Foo</Surname></Person>
<Person><Name>Lorem</Name><Surname>Ipsum</Surname></Person>
<Person><Name>Lorem</Name><Surname>Ipsum</Surname></Person>
提前致谢!
【问题讨论】:
-
能否提供预期的结果(尤其是最后一行)?
-
我不确定你想对你的输入文本做什么!但最后一个输入行失败是因为在您的模式中使用了
.,将其更改为[^<>]以不在其他标签名称中包含标签!并在*之后添加?以在第一次>会议中停止捕获。 -
我更新了预期的结果。谢谢:)
-
我不知道你想用
(!?\<.*\>)做什么。这将捕获一个可选的感叹号!,后跟一个开放的分括号,尽可能多的字符,以及一个封闭的分括号。
标签: regex xml notepad++ negate