9.正則表達式元字符

???? 正則表達式語言由兩種基本字符類型組成:原義(正常)文本字符和元字符。元字符使正則表達式具有處理能力。元字符既可以是放在[]中的任意單個字符(如[a]表示匹配單個小寫字符a),也可以是字符序列(如[a-d]表示匹配a、b、c、d之間的任意一個字符,而\w表示任意英文字母和數字及下劃線),下面是一些常見的元字符:

.匹配除\n以外的任何字符(注意元字符是小數點)。

[abcde]匹配abcde之中的任意一個字符

[a-h]匹配a到h之間的任意一個字符

[^fgh]不與fgh之中的任意一個字符匹配

\w匹配大小寫英文字符及數字0到9之間的任意一個及下劃線,相當于[a-zA-Z0-9_]

\W不匹配大小寫英文字符及數字0到9之間的任意一個,相當于[^a-zA-Z0-9_]

\s匹配任何空白字符,相當于[ \f\n\r\t\v]

\S匹配任何非空白字符,相當于[^\s]

\d匹配任何0到9之間的單個數字,相當于[0-9]

\D不匹配任何0到9之間的單個數字,相當于[^0-9]

[\u4e00-\u9fa5]匹配任意單個漢字(這里用的是Unicode編碼表示漢字的)

正則表達式限定符

上面的元字符都是針對單個字符匹配的,要想同時匹配多個字符的話,還需要借助限定符。下面是一些常見的限定符(下表中n和m都是表示整數,并且0

*匹配0到多個元字符,相當于{0,}

?匹配0到1個元字符,相當于{0,1}

{n}匹配n個元字符

{n,}匹配至少n個元字符

{n,m}匹配n到m個元字符

+匹配至少1個元字符,相當于{1,}

\b匹配單詞邊界

^字符串必須以指定的字符開始

$字符串必須以指定的字符結束

說明:

(1)由于在正則表達式中“ \ ”、“ ? ”、“ * ”、“ ^ ”、“ $ ”、“ + ”、“(”、“)”、“ | ”、“ { ”、“ [ ”等字符已經具有一定特殊意義,如果需要用它們的原始意義,則應該對它進行轉義,例如希望在字符串中至少有一個“ \ ”,那么正則表達式應該這么寫:\\+。

(2)可以將多個元字符或者原義文本字符用括號括起來形成一個分組,比如^(13)[4-9]\d{8}$表示任意以13開頭的移動手機號碼。

(3)另外對于中文字符的匹配是采用其對應的Unicode編碼來匹配的,對于單個Unicode字符,如\u4e00表示漢字“一”,\u9fa5表示漢字“龥”,在Unicode編碼中這分別是所能表示的漢字的第一個和最后一個的Unicode編碼,在Unicode編碼中能表示20901個漢字。

(4)關于\b的用法,它代表單詞的開始或者結尾,以字符串“ 123a 345b 456 789d ”作為示例字符串,如果正則表達式是“ \b\d{3}\b ”,則僅能匹配456。

(5)可以使用“ | ”來表示或的關系,例如[z|j|q]表示匹配z、j、q之中的任意一個字母。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容