正則表達式的作用主要有三:
正則表達式就是有普通字符以及特殊字符(稱為元字符)組成的文字模式。元字符前面的字符稱為前導符,元字符按功能又分為限定符、定位符等類別,下面對常用的元字符進行列表說明。
常見元字符
說明
\s 匹配單個空格,包括tab鍵和換行符
\S 匹配出單個空格符之外的所有字符,\S與\s互為逆運算
\d 匹配從0~9的數字
\w 匹配字母,數字或者下劃線字符
\W 匹配所有與\w不匹配的字符,\W與\s互為逆運算
\cx 匹配由x指明的控制字符。
\f 匹配一個換頁符,等價與\x0c和\cL
\n 匹配一個換行符,等價於\x0a和\cJ
\r 匹配一個回車符,等價於\x0d和\cM
\t 匹配一個制表符,等價於\x09和\cI
\v 匹配一個垂直制表符。等價於\x0b和\cK
. 用於匹配除換行符之外的所有字符
常見限定符說明
* 匹配前導字符出現零次或者多次
+ 匹配前導字符出現一次或者多次
? 匹配前導字符出現零次或者一次
{n} 匹配前導字符出現n次,n>=0;
{n,} 匹配前導字符至少出現n次,n>=0;
{n,m} 匹配前導字符至少出現n次,最多出現m次;m>n>=0;
定位符說明
^ 匹配模式必須出現在目標字符串開頭
$ 匹配模式必須出現在目標的結尾
\b 匹配模式必須出現在目標字符串的開頭或者結尾的兩個邊界之一
\B 匹配對象必須位於目標字符串的開頭和結尾的兩個邊界之內,即匹配對象既不能作為目標字符串的開頭,也不能作為目標字符串的結尾
正則表達式匹配模式的范圍指定符
[] 限定的模式指定了其中一個字符的出現的可能。如/[A-Z]/表示匹配從A到Z任何一個字符;
() 限定的模式指定()裡包含的內容必須同時出現在對象中。如/(abc)[0-9]/意思是目標字符串中出現的abc1,abc2...abc9中9個中的任何一個,而不是ab1,a2等;
| 類似於邏輯運算中的“或”運算,如:/sb|a/表示與目標對象的"sb","a"中任何一個相匹配;
當^符出現在[]中時,表示取否定運算。
字符轉義與優先級順序
在匹配模式需要使用元字符時,需要使用轉移字符“\+元字符”表示,如查找“12*”模式,我們可以使用/12\*/表示;
正則表達式在匹配過程中是按照從左向右的順序進行的,其操作符具有一定的優先級順序
優先級順序
優先級 操作符 說明
1 \ 轉義符
2 (),(?:),(?=),[] 圓括號和方括號
3 *,+,?,{n},{n,},{n,m} 限定符
4 ^,$,\anyMatchcharacter 位置順序
5 | 或操作