Regular-Expression
關於正則表達式 ‘(bab) B1B’
這是對這個問題的跟進。我認為它足夠不同,值得提出一個新問題。
據我了解,擷取組僅擷取文本,這意味著當
(\ba\b)
僅匹配保存字元串時a
,單詞邊界本身不包括在內,因為它們不是文本。這使我相信該模式
(\ba\b) \B\1\B
應該能夠匹配a zaz
(畢竟第二次出現a
在兩個非單詞邊界之間),但它不匹配。我錯過了什麼?
你錯過了z?
$ echo a zaz | grep -P '(\ba\b) \B\1\B' - no output - $ echo a zaz | grep -P '(\ba\b) z\B\1\Bz' a zaz
就像
\b
在括號中不包含附加字元一樣,\B
也不匹配附加字元。因此,正則表達式中沒有任何內容可以匹配 a 周圍的 z。