正則表達式是由普通字符(例如字符 a 到 z)以及特殊字符(稱為"元字符")組成的文字模式成榜。模式描述在搜索文本時要匹配的一個或多個字符串。正則表達式作為一個模板西设,將某個字符模式與所搜索的字符串進行匹配柳譬。
1群扶、元字符
正則表達式語言由兩種基本字符類型組成:原義(正常)文本字符和元字符透葛。元字符使正則表達式具有處理能力笨使。所謂元字符就是指那些在正則表達式中具有特殊意義的專用字符,可以用來規(guī)定其前導(dǎo)字符(即位于元字符前面的字符)在目標對象中的出現(xiàn)模式获洲。
2阱表、特殊字符
特別字符 |
描述 |
( ) |
標記一個子表達式的開始和結(jié)束位置殿如。子表達式可以獲取供以后使用贡珊。要匹配這些字符,請使用 \( 和\ ) |
* |
匹配前面的子表達式零次或多次涉馁。要匹配 * 字符门岔,請使用 \*。 |
+ |
匹配前面的子表達式一次或多次烤送。要匹配 + 字符寒随,請使用 \+ |
. |
匹配除換行符 \n 之外的任何單字符。要匹配 . 帮坚,請使用\ . |
? |
匹配前面的子表達式零次或一次妻往,或指明一個非貪婪限定符。要匹配 ? 字符试和,請使用 \? |
^ |
匹配輸入字符串的開始位置讯泣,除非在方括號表達式中使用,此時它表示不接受該字符集合阅悍。要匹配 ^ 字符本身好渠,請使用 \^ |
3昨稼、限定符
字符 |
描述 |
( ) |
標記一個子表達式的開始和結(jié)束位置 |
+ |
匹配前面的子表達式一次或多次 |
? |
匹配前面的子表達式零次或一次 |
{n} |
n 是一個非負整數(shù),匹配確定的 n 次 |
{n,} |
n 是一個非負整數(shù)拳锚。至少匹配n 次 |
{n,m} |
m 和 n 均為非負整數(shù)假栓,其中n <= m。最少匹配 n 次且最多匹配 m 次 |
4霍掺、元字符
元字符 |
正則表達式中的寫法 |
含義 |
. |
. |
任意一個字符 |
\d |
\\d |
0~9的任意一個數(shù)字 |
\D |
\\D |
任意一個非數(shù)字字符 |
\s |
\\s |
空白字符匾荆,如\t、\n |
\S |
\\S |
非空白字符 |
\w |
\\w |
代表可用作標識符的字符 |
\S |
\\S |
非空白字符 |
\p{Lower} |
\\p{Lower} |
小寫字母 |
\p{Upper} |
\\p{Upper} |
大寫字符 |
\p{ASCII} |
\\p{ASCII} |
ASCII字符 |
\p{Alpha} |
\\p{Alpha} |
字母字符 |
\p{Digit} |
\\p{Digit} |
十進制數(shù)字杆烁,即[0~9] |
\p{Alnum} |
\\p{Alnum} |
數(shù)字或字母字符 |
\p{Punct} |
\\p{Punct} |
標點符號 |
5棋凳、限定符
限定修飾符 |
意義 |
示例 |
? |
0次或1次 |
A? |
* |
0次或多次 |
A* |
+ |
0次或多次 |
A+ |
{n} |
正好出現(xiàn)n次 |
A{n} |
{n,} |
至少出現(xiàn)n次 |
A{3,} |
{n,m} |
出現(xiàn)n到m次 |
A{2,6} |
6连躏、正則表達式的簡單例子
^[0-9]+abc$
- ^ 為匹配輸入字符串開始的位置剩岳;
- [0-9]+匹配多個數(shù)字,[0-9]匹配單個數(shù)字入热,+匹配一個或多個拍棕;
- abc$匹配字母abc并以abc結(jié)尾,$為匹配輸入字符串的結(jié)束位置勺良;