標記法 | 描述 | 正則表達式例子 | 匹配的字符串 |
---|---|---|---|
文字 | 匹配文字字符串值 | foo | foo |
表達式1 | 表達式2 | 匹配期中任何的一個表達式 | foo | bar | bet | foo, bar, bet |
. | 匹配任何字符,除了\n | b.c | b和c之間任何字符,如:bac, b9c, b#c等 |
^ | 匹配字符串的開始 | ^student | student開頭的任何字符串,如student data |
$ | 匹配字符串的結尾 | /sh$ | 任何/sh結尾的字符串 |
* | 匹配0或多個前置表達式 | [A-Za-z0-9]* | z[0-9],匹配z0, z1, ..., z9 |
+ | 匹配1或多個前置表達式 | [a-z]+\.com | 匹配.com前面至少一個字符 |
? | 匹配0或1個前置表達式 | goo? | [dn]ot?,d或n後一個o,後面最多一個t,如do, dot, no, not |
{N} | 匹配N個前置表達式 | [0-9]{3} | 匹配三個數字。 |
{M, N} | 匹配M到N個前置表達式 | [0-9]{5, 9} | 匹配5到9位的數字 |
[...] | 匹配任意單個的字符 | [aeiou] | b[aeiou]匹配bat, bet, bit, bot, but [cr][23][dp][o2],匹配長度爲4的字符串,如c2dp, r3p2等 |
[..x-y..] | 匹配x到y的任意單個字符 | [0-9],[A-Za-z] | [0-9],匹配0到9的任意數字 |
[^...] | 不匹配任何任何字符或任意範圍內的字符 | [^aeiou], [^A-Za-z0-9] | [^aeiou]匹配非元音字母 |
(*|+|?|{})? | 以上符號組合 | .*?[a-z] | |
(...) | 分組表達式 匹配子組 |
([0-9]{3})?, f(oo|u)bar |
\d+(\.\d*)?,匹配浮點數,如0.33, 72, 72.5, 75. f(oo|u)bar,匹配foobar, fubar |
\d | 匹配任何數字,同[0-9] \D表示不匹配 |
data\d+.txt | 匹配data0.txt,data1.txt等 |
\w | 匹配任何數字、字母 | [A-Za-z_]\w+ | 匹配第一個字符爲字母,後面更字母或數字的字符串 |
\s | 匹配任何空字符 同\n\t\r\v\f,\S爲不匹配 |
of\sthe | |
\b | 匹配任何單詞邊界 | \bThe\b \Bthe |
匹配單詞The 包含字符串the,但不是以the開頭 |
\N | 匹配保存的子組N | price: \16 | |
\c | 匹配特殊字符 | \., \\, \* | |
\A(\D) | 匹配字符串的開始或結尾 | \ADear | \ADear |
(?iLmsux) | 在正則表達式本身的參數裏面嵌入一個或多個特殊標誌 | (?x), (?im) | |
(?:...) | 未保存匹配項的組 | (?:\w+\.)* | 匹配字符串後面加一個.號,如google.,twitter. 但是不保存爲子串 |
(?P<name>...) | 像普通的匹配組,只表示名稱,而不標識數字ID | (?P<data>) | |
(?P=name) | 在同一字符串中,匹配由(?P<name>)分組的文字 | (?P=data) | |
(?#...) | 指定註釋,忽略所有的內容 | (?#comment) | 不匹配,只是註釋 |
(?=...) | 如果...緊隨出現則匹配,稱爲正向前瞻斷言 | (?=.com) | |
(?!...) | 如果...沒有緊隨出現則匹配,稱爲反正向前瞻斷言 | (?!.com) | |
(?<=...) | 如果...在前面出現則匹配,稱爲反向後瞻斷言 | (?<=800-) | |
(?<!...) | 如果...在前面沒有出現則匹配,稱爲反反向後瞻斷言 | (?<!192\.168\.) | |
(?(id/name)Y|N) | 條件匹配,如果給定ID或名字的組存在則返回爲Y 否則返回N |
(?(1)y|1) |