字界限

\b 元字元

為了更容易找到整個單詞,我們可以使用元字元\b。它標誌著開始結束字母數字序列*。此外,由於它僅用於標記此位置,因此它實際上不匹配任何字元。

*:通常將一個字母數字序列稱為一個單詞,因為我們可以用\w(單詞字元類)來捕獲它的字元。然而,這可能會產生誤導,因為\w 還包括數字,並且在大多數情況下,還包括下劃線。

例子:

正規表示式 輸入 匹配?
\bstack\b stackoverflow ,因為整個單詞 stack 沒有發生
\bstack\b foo stack bar 是的,因為在此之前和之後都沒有什麼
\bstack\b stack!overflow 是的 :在 stack 之前沒有什麼,! 不是一個單詞字元
\bstack stackoverflow 是的,因為在此之前沒什麼
overflow\b stackoverflow 是的,因為在節目之後沒什麼

\B 元字元

這與\b 相反,與每個非邊界字元的位置相匹配。像\b 一樣,因為它匹配位置,所以它本身不匹配任何字元。它對於查詢整個單詞很有用。

例子:

正規表示式 輸入 匹配?
\Bb\B abc 是的,因為 b 沒有字邊界。
\Ba\B abc a 的左側有一個單詞邊界。
a\B abc 是的a 的右側沒有單詞邊界。
\B,\B a,,,b 是的,它與第二個逗號匹配,因為 \B 也將匹配兩個非單詞字元之間的空格 (應該注意的是,第一個逗號的左邊和第二個逗號的右邊有一個單詞邊界)。