我有一些文字,它看起來像這樣刪除包含特定短語的文本塊:如何通過正則表達式
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
我有一個想法爲什麼會發生,但我不確定如何解決它。我的理論是懶惰修飾符是貪婪的,因爲它最初不匹配,所以它停在下一個匹配的匹配。我嘗試過各種排除^(?:*****)
的組合,但是當我嘗試時,這些組合似乎並不匹配。