簡體   English   中英

正則表達式中的可選組以匹配不同的行

[英]optional groups in regex to match different lines

我有兩個文件:

/c/desktop/test.txt#edit
/c/desktop/test.txt

我正在使用正則表達式: (.*desktop.*)(?:#.*)? 它應該匹配desktop之前和之后的所有內容,但保留來自#的任何內容,該行中可能存在也可能不存在。

但它要么匹配所有內容,要么什么都不匹配。

實現您想要的一種方法是使用非貪婪運算符*? 與行尾運算符一起使用: (.*desktop.*?)(?:$|#.*)

.*? 表示匹配盡可能少的字符$|#.*表示匹配行尾或#后跟字符。 這樣,第一組中的.*不會匹配#之后的內容,因為如果第二組接受它,則可以匹配具有更少字符的模式。

在這里測試: https://regex101.com/r/7l1CQi/1

暫無
暫無

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

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