c#Regex基礎
元字元:
|
字元 |
說明 |
|
^ |
匹配行的開始位置 |
|
$ |
匹配行的結束位置 |
|
b |
匹配單詞的開始或結束位置 |
|
. |
匹配除分行符號號之外的任一字元 |
|
w |
匹配單詞字元(包括字母、數字、底線和漢字) |
|
w |
匹配任意的非單詞字元(包括字母、數字、底線和漢字) |
|
s |
匹配任意的空白字元,如空格、定位字元、分行符號等 |
|
s |
匹配非空白字元 |
|
d |
匹配任意的數字 |
|
d |
匹配非任意的數字 |
常用字元集:
|
字元 |
說明 |
|
. |
匹配除分行符號號之外的任一字元 |
|
w |
匹配單詞字元(包括字母、數字、底線和漢字) |
|
w |
匹配任意的非單詞字元(包括字母、數字、底線和漢字) |
|
s |
匹配任意的空白字元,如空格、定位字元、分行符號等 |
|
s |
匹配非空白字元 |
|
d |
匹配任意的數字 |
|
d |
匹配非任意的數字 |
|
[abcd] |
匹配字元集合中的任何字元 |
|
[^abcd] |
匹配字元集合之外的任何字元 |
|
[0-9a-za-z] |
匹配任何數字、字母(大寫和小寫字母)和底線,等同於 w |
|
[^0-9a-za-z] |
匹配除數字、字母(大寫和小寫字母)和底線,等同於 w |
|
p{name} |
匹配{name}指定的命名字元類中的任何字元 |
|
p{name} |
匹配{name}指定的命名字元類外的任何字元 |
常用逸出字元:
|
字元 |
說明 |
|
a |
響鈴警報u0007 |
|
b |
在Regex中,表示單詞的邊界;如果在字元類中,則表示退格符u0008 |
|
t |
定位字元u0009 |
|
r |
斷行符號符u000d |
|
v |
垂直定位字元u000b |
|
f |
換頁符u000c |
|
n |
分行符號u000a |
|
e |
回退符u001b |
|
40 |
將ascii字元匹配為8進位數 |
|
x20 |
使用十六進位表示形式與ascii字元匹配 |
|
cc |
ascii控制字元,如ctrl+c |
|
u0020 |
使用十六進位表示形式與unicode字元匹配 |
常用限定字元:
|
字元 |
說明 |
|
{n} |
重複n次 |
|
{n,} |
重複至少n次 |
|
{n,m} |
重複至少n次,最多m次 |
|
* |
重複至少0次,等同於{0,} |
|
+ |
重複至少1次,等同於{1,} |
|
? |
重複0次或1次,等同於{0,1} |
|
*? |
儘可能少的使用重複的第一個匹配符 |
|
+? |
儘可能少地使用重複但至少使用一次 |
|
?? |
使用0次重複或一次重複 |
|
{n}? |
等同於{n} |
|
{n,}? |
儘可能地使用重複但至少使用n次 |
|
{n,m}? |
介於n次和m次之間、儘可能少地使用重複 |
替換字元:|
例子:國內部分地區的三種固定電話號碼
0d{2}-d{8}|0d{3}-d{7}|0d{3}-d{8}
分組字元:( )
例子:匹配簡單的ip地址
(d{1,3}.){3}d{1,3}