我有一些文字,它看起来像这样删除包含特定短语的文本块:如何通过正则表达式
12 12 obj
<<
Some content here
>>
endobj
12 13 obj
<<
Some content here with a email address that contains @mail.
>>
endobj
11 12 obj
<<
Some more content here
>>
endobj
我想删除任何文本块,开始/d+ /d+ obj
(如12 13 obj
)到它们在endobj
处结束的地方,它们包含特定的字符串,在这种情况下,它将是@mail
。我在寻找正确的RegEx时遇到了一些麻烦。
我能够成功地选择与(\d+\ \d+\ obj[\s\S]+?endobj)
见测试在这里每个块:https://regex101.com/r/V4WAMl/5
但我无法得到这个工作,因为我想(\d+\ \d+\ obj[\s\S][email protected][\s\S]+?endobj)
看到这里测试:https://regex101.com/r/V4WAMl/4
我有一个想法为什么会发生,但我不确定如何解决它。我的理论是懒惰修饰符是贪婪的,因为它最初不匹配,所以它停在下一个匹配的匹配。我尝试过各种排除^(?:*****)
的组合,但是当我尝试时,这些组合似乎并不匹配。