【发布时间】:2018-02-23 13:36:56
【问题描述】:
我有一个包含许多<request> 元素的文件,我想查找所有不包含<boop> 的<request> 标签。
<request> 可以在<boop> 之前和之后有许多标签(如以下示例中的<beep> 和<bop>)。
<request>
<beep>
</beep>
<boop>
</boop>
<bop>
</bop>
</request>
我试过<request>.*?<\/request> 匹配每个<request>
用消极的前瞻来扩展我得到的:
<request>.*?(?!<boop>).*?<\/request>
但这似乎不起作用。
我在搜索中选择了正则表达式和匹配换行符。
提前谢谢你。
【问题讨论】:
-
你可以试试
(?s)<request>(?:(?!<(?:request|boop)>).)*?</request>。或<request>[^<]*(?:<(?!(?:request|boop)>)[^<]*)*</request>. -
哇,非常感谢!它工作得很好。我花了几个小时在这上面。请发布答案,以便我投票。问候。