Regular-Expression

關於正則表達式 ‘(bab) B1B’

  • September 26, 2019

這是對這個問題的跟進。我認為它足夠不同,值得提出一個新問題。

據我了解,擷取組僅擷取文本,這意味著當(\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。

引用自:https://unix.stackexchange.com/questions/543809