簡體   English   中英

如何僅在單行上匹配正則表達式?

[英]How to match regex pattern on single line only?

我有以下正則表達式和示例輸入:

http://regex101.com/r/xK9dE3

你可以看到它匹配第一個“喲”。 我只希望模式在同一行(第二個“yo”)模式上與“cut me”匹配。

如何確保正則表達式匹配僅在同一行?

輸出:

Hi

預期輸出(這是我真正想要的):

Hi

yo keep this here

Keep this here

你可以使用這個正則表達式與s (DOTALL)正則表達式標志:

^.*?(?=yo\b[^\n]*cut me:)

在線演示: http//regex101.com/r/oV3eP7

yo\\b[^\\n]*cut me:是先行模式,確保帶有單詞邊界的yocut me:匹配在同一行。

刪除sDOTALL標志並將正則表達式更改為以下內容:

^.*?((\yo\b.*?(cut me:)[\s\S]*))

啟用DOTALL標志. 將匹配換行符,因此您的匹配可以跨越多行,包括yo之前的行或yo之間的行和cut me 通過刪除此標志,您可以確保只匹配yocut me ,然后將.*末尾的.*更改為[\\s\\S]* ,它將匹配包括換行符在內的任何字符,以便您可以匹配字符串的結尾。

http://regex101.com/r/sX2kL0

編輯:請注意,這與其他答案略有不同,這將匹配您要刪除的字符串部分,因此您可以用空字符串替換此部分以將其刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM