正則表達式是由普通字符(例如字符a~z)以及特殊字符(稱為元字符)組成的文字模式。正則表達式作為一個模板,將某個字符模式與所搜索的字符串進行匹配。可以通過在一對分隔符之間放入表達式模式的各種組件來構造一個正則表達式,即/expression/。 正則表達式有多種不同的風格。
特殊含義的元字符:
\d : 0-9之間的任意一個數(shù)字 \d只占一個位置
\w : 數(shù)字,字母 ,下劃線 0-9 a-z A-Z _
\s : 空格或者空白等
\D : 除了\d
\W : 除了\w
\S : 除了\s
. : 除了\n之外的任意一個字符
\ : 轉義字符
| : 或者
() : 分組
\n : 匹配換行符
\b : 匹配邊界 字符串的開頭和結尾 空格的兩邊都是邊界 => 不占用字符串位數(shù)
^ : 限定開始位置 => 本身不占位置
$ : 限定結束位置 => 本身不占位置
[a-z] : 任意字母 []中的表示任意一個都可以
[^a-z] : 非字母 []中^代表除了
[abc] : abc三個字母中的任何一個 [^abc]除了這三個字母中的任何一個字符
次數(shù)的量詞元字符:
* : 0到多個
+ : 1到多個
? : 0次或1次 可有可無
{n} : 正好n次;
{n,} : n到多次
{n,m} : n次到m次
普通字符由所有那些未顯式指定為元字符的打印和非打印字符組成。這包括所有的大寫和小寫字母字符、所有數(shù)字、所有標點符號及一些符號。 POSIX RE用于方括號外的元字符如表C-1所示。
特別字符 | 說 明 |
$ | 匹配輸入字符串的結尾位置。如果設置了RegExp 對象的Multiline屬性,則$也匹配'\n'或'\r'。 要匹配$字符本身,請使用\$ |
( ) | 標記一個子表達式的開始和結束位置。子表達式可 以獲取供以后使用。要匹配這些字符,請使用\(和 \) |
* | 匹配前面的子表達式零次或多次。要匹配 * 字符,請使用 \* |
+ | 匹配前面的子表達式一次或多次。要匹配 + 字符,請使用 \+ |
. | 匹配除換行符\n之外的任何單字符。要匹配 .,請使用 \ |
[ | 標記一個中括號表達式的開始。要匹配 [,請使用 \[ |
? | 匹配前面的子表達式零次或一次,或指明一個非 貪婪限定符。要匹配 ? 字符,請使用 \? |
\ | 將下一個字符標記為或特殊字符、或原義字符、 或向后引用、或八進制轉義符。例如,“n”匹 配字符“n”。“\n”匹配換行符。序列“\\”匹 配“\”,而“\(”則匹配“(” |
^ | 匹配輸入字符串的開始位置,除非在方括號表達式 中使用,此時它表示不接受該字符集合。要匹配 ^ 字符本身,請使用 \^ |
{ | 標記限定符表達式的開始。要匹配{,請使用\{ |
| | 指明兩項之間的一個選擇。要匹配|,請使用\| |
POSIX RE用于方括號內的元字符,如表C-2所示。
特別字符 | 說 明 |
\ | 轉義字符 |
^ | 非 |
- | 用于指定字符范圍 |
發(fā)表評論