前言
正則表達式,只要是從事IT工作的同學都不會陌生,網絡等基礎類的IT從業人員會將正則表達式用於,例如在Voice方向的IP電話時,會用正則表達式匹配撥號規則。像一些日誌服務器會有正則表達式來匹配相應的字符串等等。
正則表達式可以包含特殊字符或者普通字符,普通字符就是我們常見的大寫字母,小寫字母,數字等。在簡單的正則表達式中,它僅僅匹配這些字符本身。也可以使用高級匹配模式。
正常表達式字符及相應的意義
匹配字符 | 意義 |
---|---|
. | 匹配任意單個字符 |
^ | 錨定行首,其後跟一個字符串表示匹配以該字符串開頭的行 |
$ | 錨定行尾,其前跟一個字符串表示匹配以該字符串結尾的行 |
* | 默認工作在貪婪模式下,匹配其前的字符可以出現任意次 |
+ | 匹配其前的字符至少出現一次,就是[1,∞) |
? | 默認工作在貪婪模式下,匹配其前的字符可有可無,換句話說,其前的字符可以是0次或者1次 |
*?,+?,?? | 這是前3種模式的非貪婪模式的匹配方式。 |
{m,n} | 默認工作在貪婪模式下,匹配其前的字符至少出現m次,至多出現n次。 |
{m,n}? | 上面匹配方式的非貪婪模式 |
\ | 逃逸符,即去掉某些字符的特殊意義,或者指定某些字符具有特殊意義 |
[] | 匹配中括號內出現的單個字符 |
[^] | 如果在中括號內前面加個託字符表示匹配中括號內出現的字符外的單個字符 |
" | " |
(…) | 將小括號內的字符當成一個整體來匹配 |
“\” 逃逸符組成的特定字符串
使用“\”組成的特定的序列,並且字符是從下面的組合。
如果這個普通的字符不在這個列表中,正則表達式將匹配第二個字符。
匹配字符 | 意義 |
---|---|
\number | 匹配組內爲相同數字的內容 |
\A | 僅匹配以該字符串開始內容 |
\Z | 僅匹配以該字符串結尾的內容 |
\b | 匹配空字符串,但是僅僅是在單詞的詞首或者詞尾 |
\B | 匹配空字符串,但不是在單詞的詞首或者詞尾 |
\d | 匹配十進制數字,相當於"[0-9]" |
\D | 匹配非數字的字符,相當於“[^\d]” |
\s | 匹配任意空白字符,相當於“[ \t\n\r\f\v]” |
\S | 匹配任意非空白字符,相當於“[^\s]” |
\w | 匹配所有字母跟數字,相當於“[a-zA-Z0-9_]” |
\W | 匹配“\w”的補集,相當於[^\w] |
\ | 匹配“\”本身 |