正則入門 邊界的定義與相對性

2021-06-28 14:40:16 字數 991 閱讀 8916

講了這麼多,還漏掉了乙個重要的內容:究竟什麼才算邊界?

通常情況下,以 空格、段落首行、段落末尾、逗號、句號 等符號作為邊界,

值得注意的是,分隔符「-」也可以作為邊界。

正則如下:

\bmagic\b
效果演示

welcome to nowa-magic this magic place!

本例**

function reg_replace()

這是什麼原因呢?其實很好理解,從「-」的字面意思:分隔符,大致就可以想到了。實際上,在英語中,它是用來做單詞分隔的。

這裡有個重要的搜尋引擎優化常識,大家注意到本文件的命名,我採用的是:regular-expression-tutorial.pdf,為什麼不用下劃線分隔,命名成regular_expression_tutorial.pdf 呢?

因為當搜尋引擎看到「-」的時候,會把它視為乙個空格「 」,而看到下劃線「_」的時候,會把它視為空字元「」

,實際上,下劃線的正確叫法是「連字元」。於是,當我命名為 regular-expression-tutorial.pdf 時,搜尋引擎看到的是: regular expression tutorial.pdf,而當我命名成 regular_expression_tutorial.pdf 時,搜尋引擎看作 regularexpressiontutorial.pdf 。

可以看出,正規表示式在字元邊界問題上 對「-」的處理方式 與 搜尋引擎相同。

邊界的相對性:

正則如下:

\b(,)\b
效果演示

welcome to nowamagic,this magic place!

與上面唯一不同的是:這次我們匹配逗號「,」,而它本身也是乙個邊界,結果與上面完全相反。可見,對於「,」而言,它的邊界是乙個普通字母。

邊界的相對性是很重要的,因為我們很多時候需要匹配諸如「<」這樣的字元。

正規表示式的邊界表示

接下來學習正規表示式的邊界表示,邊界表示就是在寫正規表示式的時候,限制匹配的字串的開始和結束邊界。字元 描述 匹配字串開頭 匹配字串結尾 b 匹配乙個單詞的邊界 b 匹配非單詞邊界 注意 邊界字元只用於描述邊界資訊,不能用於字元的匹配。示例 完善之前課時中關於手機號碼匹配的示例,在匹配超過11位的手...

PHP入門 陣列的定義與使用

1 陣列概述 1 宣告 1 直接賦值宣告 a 0 1 a 1 2 a name 張三 2 使用array 函式 a array 3,4 b array name zhangsan age 67 c array 1,2 age 45 混合宣告陣列時,索引陣列和關聯陣列互不影響 2 特點 可以儲存任意型...

正規表示式筆記 2 邊界符中的單詞邊界 b

regex state 首先單詞字元在正規表示式中定義為 w 也就是 a za z 0 9 所謂的乙個單詞由1個或1個以上的單詞字元組成,多個單詞之間由非單詞字元隔開。b 是乙個位置匹配符,它有如下兩種含義 匹配字串的首字元前和末字元後面的位置 前提是首字元 末字元是乙個單詞字元 w 在單詞字元 w...