可以用字符作為一個通配符來代替除換行符(\n)之外的任一個字符。例如,正則表達式:
.at
可以與"cat"、"sat"、"#at"和"mat"等進行匹配。主要是用於在搜索文件時
也可以指定一個字符集:
[a-z]at
在方括號([])中的內容都是一個字符類--- 一個被匹配字符所屬的字符集合。但是只匹配其中的一個字符。
同時我們也可以給出一個集合。
[aeiou]
可以用來表示元音字母。
也可以用來表示一個范圍。也可以是一個范圍集:
[a-zA-Z]
這個范圍集代表任何的大小字母。
此外,還可以用集合來指明字符不屬於某個集。例如:
[^a-z]
可以用來匹配任何不在a和z之間的字符。當把脫胎換骨字符號(^)包括在方括號裡面時,表示否。
重復次數
"*"表示這個模式可以被重復0次或更多次,符號"+"則表示這個模式可以被重復1次或更多次。
[[:alnum:]]+
表示至少有一個字母。
子表達式
(very)*large
可以匹配 very large 、 large 、very very large 等。
子表達式記數
可以用在花括號({})中的數字表達式來指定內容允許重復的次數。可以指定一個確切的數字({3}表示重復3次),或者一個重復次數的范圍
({2,4}表示重復2~4次),或是一個開底的重復范圍({2,}表示至少要重復2次).
例如:
(very){1,3}
表示匹配"very"、"very very"、"very very very"。
定位到字符串的開始或末尾
脫字符號(^)用於正則表達式的開始,表示子字符串必須出現在被搜索字符串的開始字符處,字符"$"用於正則表達式的末尾。表示子字符串必
須出現在字符串的末尾。
例,以下是在字符串開始處匹配bob:
^bob
這個模式將匹配com出現在字符串末尾處的字符串:
com$
最後,這個模式將匹配只包含a到z之間一個字符的字符串:
^[a-z]$
分支
可以使用正則表達式中的一條豎線來表示一個選擇。例如,如果要匹配com、edu或net,就可以使用如下所示的表達示:
com|edu|net
匹配特殊字符
如果要匹配特殊字符,例如,.、{或者$,就必須在它們前面加一個反斜槓(\)。如果要匹配一個反斜槓,則必須用兩個反斜槓(\\)來表示.
在PHP中,必須將正則表達式模式包括在一個單引號字符串中.
在POSIX正則表達式中,用於方括號外面特殊字符的摘要
字符 意義 字符 意義
\ 轉意字符 ) 子模式的結束
^ 在字符串開始匹配 * 重復0次或更多次
$ 在字符串末尾匹配 + 重復1次或更多次
. 匹配除換行符(\n)之外的字符 { 最小/最大量記號的開始
| 選擇分支的開始(或) } 最小/最大量記號的結束
( 子模式的開始 ? 標記一個子模式為可選的
在POSIX正則表達式中,用於方括號裡面的特殊字符
字符 意義
\ 轉意字符
^ 非,僅用在開始位置
- 用於指明字符范圍