1. 程式人生 > >正則表示式簡單說明

正則表示式簡單說明

/**

*  正則表示式簡單說明

*  語法:

.       匹配除換行符以外的任意字元

\\w      匹配字母或數字或下劃線或漢字

\\s      匹配任意的空白符

\\d      匹配數字

\\b      匹配單詞的開始或結束

^       匹配字串的開始

$       匹配字串的結束

*       重複零次或更多次

+       重複一次或更多次

?       重複零次或一次

{n}     重複n次

{n,}     重複n次或更多次

{n,m}     重複n到m次

\\W      匹配任意不是字母,數字,下劃線,漢字的字元

\\S      匹配任意不是空白符的字元

\\D      匹配任意非數字的字元

\\B      匹配不是單詞開頭或結束的位置

[^x]     匹配除了x以外的任意字元

[^aeiou]匹配除了aeiou這幾個字母以外的任意字元

*?      重複任意次,但儘可能少重複

+?      重複1次或更多次,但儘可能少重複

??      重複0次或1次,但儘可能少重複

{n,m}?     重複n到m次,但儘可能少重複

{n,}?     重複n次以上,但儘可能少重複

\\a      報警字元(列印它的效果是電腦嘀一聲)

\\b      通常是單詞分界位置,但如果在字元類裡使用代表退格

\\t      製表符,Tab

\\r      回車

\\v      豎向製表符

\\f      換頁符

\\n      換行符

\\e      Escape

\\0nn     ASCII程式碼中八進位制程式碼為nn的字元

\\xnn     ASCII程式碼中十六進位制程式碼為nn的字元

\\unnnn     Unicode程式碼中十六進位制程式碼為nnnn的字元

\\cN     ASCII控制字元。比如\\cC代表Ctrl+C

\\A      字串開頭(類似^,但不受處理多行選項的影響)

\\Z      字串結尾或行尾(不受處理多行選項的影響)

\\z      字串結尾(類似$,但不受處理多行選項的影響)

\\G      當前搜尋的開頭

\\p{name}     Unicode中命名為name的字元類,例如\\p{IsGreek}

(?>exp)     貪婪子表示式

(?<x>-<y>exp)     平衡組

(?im-nsx:exp)     在子表示式exp中改變處理選項

(?im-nsx)       為表示式後面的部分改變處理選項

(?(exp)yes|no)     把exp當作零寬正向先行斷言,如果在這個位置能匹配,使用yes作為此組的表示式;否則使用no

(?(exp)yes)     同上,只是使用空表示式作為no

(?(name)yes|no) 如果命名為name的組捕獲到了內容,使用yes作為表示式;否則使用no

(?(name)yes)     同上,只是使用空表示式作為no

 

捕獲

(exp)               匹配exp,並捕獲文字到自動命名的組裡

(?<name>exp)        匹配exp,並捕獲文字到名稱為name的組裡,也可以寫成(?'name'exp)

(?:exp)             匹配exp,不捕獲匹配的文字,也不給此分組分配組號

零寬斷言

(?=exp)             匹配exp前面的位置

(?<=exp)            匹配exp後面的位置

(?!exp)             匹配後面跟的不是exp的位置

(?<!exp)            匹配前面不是exp的位置

註釋

(?#comment)         這種型別的分組不對正則表示式的處理產生任何影響,用於提供註釋讓人閱讀

*/