正則表達式是由普通字符(例如字符 a 到 z)以及特殊字符(稱為"元字符")組成的文字模式。模式描述在搜索文本時要匹配的一個或多個字符串。正則表達式作為一個模板,將某個字符模式與所搜索的字符串進行匹配。
1、元字符
正則表達式語言由兩種基本字符類型組成:原義(正常)文本字符和元字符。元字符使正則表達式具有處理能力。所謂元字符就是指那些在正則表達式中具有特殊意義的專用字符,可以用來規定其前導字符(即位于元字符前面的字符)在目標對象中的出現模式。
2、特殊字符
特別字符 |
描述 |
( ) |
標記一個子表達式的開始和結束位置。子表達式可以獲取供以后使用。要匹配這些字符,請使用 \( 和\ ) |
* |
匹配前面的子表達式零次或多次。要匹配 * 字符,請使用 \*。 |
+ |
匹配前面的子表達式一次或多次。要匹配 + 字符,請使用 \+ |
. |
匹配除換行符 \n 之外的任何單字符。要匹配 . ,請使用\ . |
? |
匹配前面的子表達式零次或一次,或指明一個非貪婪限定符。要匹配 ? 字符,請使用 \? |
^ |
匹配輸入字符串的開始位置,除非在方括號表達式中使用,此時它表示不接受該字符集合。要匹配 ^ 字符本身,請使用 \^ |
3、限定符
字符 |
描述 |
( ) |
標記一個子表達式的開始和結束位置 |
+ |
匹配前面的子表達式一次或多次 |
? |
匹配前面的子表達式零次或一次 |
{n} |
n 是一個非負整數,匹配確定的 n 次 |
{n,} |
n 是一個非負整數。至少匹配n 次 |
{n,m} |
m 和 n 均為非負整數,其中n <= m。最少匹配 n 次且最多匹配 m 次 |
4、元字符
元字符 |
正則表達式中的寫法 |
含義 |
. |
. |
任意一個字符 |
\d |
\\d |
0~9的任意一個數字 |
\D |
\\D |
任意一個非數字字符 |
\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} |
十進制數字,即[0~9] |
\p{Alnum} |
\\p{Alnum} |
數字或字母字符 |
\p{Punct} |
\\p{Punct} |
標點符號 |
5、限定符
限定修飾符 |
意義 |
示例 |
? |
0次或1次 |
A? |
* |
0次或多次 |
A* |
+ |
0次或多次 |
A+ |
{n} |
正好出現n次 |
A{n} |
{n,} |
至少出現n次 |
A{3,} |
{n,m} |
出現n到m次 |
A{2,6} |
6、正則表達式的簡單例子
^[0-9]+abc$
- ^ 為匹配輸入字符串開始的位置;
- [0-9]+匹配多個數字,[0-9]匹配單個數字,+匹配一個或多個;
- abc$匹配字母abc并以abc結尾,$為匹配輸入字符串的結束位置;