幾個(gè)正則表達(dá)式編輯器:
Regexper:http://www.regexper.com/
Debuggex :https://www.debuggex.com/
PyRegex:http://www.pyregex.com/
1.匹配任意一個(gè)
字符.
-
.
是元字符 -
b.u
可以找出bau bru biu b.u b1u等等等,但是不會(huì)找出bu biiu -
.
不能用于匹配換行符
??:反斜杠\
可以忽略元字符倘要,使得元字符的功能與普通字符一樣
故志珍,b\.u
將找出b.u西乖,b\\u
將找出b\u
2.匹配阿拉伯?dāng)?shù)字惧辈、英文大小寫和下劃線\w\W
\w
匹配阿拉伯?dāng)?shù)字抖拴、英文大小寫和下劃線
\W
匹配被\w
排除在外的字符(\w
的補(bǔ)集)
3.匹配阿拉伯?dāng)?shù)字\d
- 匹配數(shù)字:
\d
- 匹配小數(shù):
\d\.\d
- 既匹配數(shù)字又匹配小數(shù):??
\D
:匹配非
阿拉伯?dāng)?shù)字\d
的補(bǔ)集(包含空格等)
4.匹配空白字符\s
\s
:匹配空格痪寻、制表符凑懂、換行等
\S
:匹配被\s
排除在外的字符(\s
的補(bǔ)集)
5.字符集合[a-zA-Z0-9]
[選擇范圍]
:匹配方括號(hào)中的任意一個(gè)字符
[\u4e00-\u9fa5]
:中的所有中文字符
6.重復(fù)一次或多次+
[范圍]+
:重復(fù)一次或多次
[yY][oO]+
yo
yooo
Yo
YOOOO
煤痕?[]里的一個(gè)字符重復(fù)一次或多次?接谨?
7.重復(fù)0次或多次*
[yY][oO]+[!~\.]*
yo
yooo
Yo
YOOOO
yo!
yo.
yoooo~~
8.重復(fù)0次或1次?
[范圍]?
:重復(fù)0次或1次
[yY][oO]+p?[!~\.]*
yop!!
Yoop
yooop
yo
yooo
Yo
YOOOO
yo!
yo.
yoooo~~
9.指定重復(fù)范圍(重復(fù)a到b次)
{a,b}
:重復(fù)a到b次
10.分組匹配
(.+)飛飛摆碉,(.+)追追
$1
$2
11.分組匹配但不捕獲(?:模式)
12.正向預(yù)查
正向肯定預(yù)查:(?=模式)
\d+(?=模式)
:前面是我要匹配的東西,后面必須跟模式
脓豪,但是不要匹配模式中的內(nèi)容
正向否定預(yù)查:(?!模式)
(?!模式)|\前面匹配的內(nèi)容
13.反向預(yù)查
加了個(gè)箭頭<
(?<=xxx)
反向肯定預(yù)查巷帝,與正向肯定預(yù)查類擬,只是方向相反
(?<!xxx)
反向否定預(yù)查扫夜,與正向否定預(yù)查類擬楞泼,只是方向相反
14.速查表
邊界
符號(hào) | 描述 | 例子 | 能匹配 | 不能匹配 |
---|---|---|---|---|
^ |
行首或字符串開(kāi)始 | ^yo |
yo | ayo |
$ |
行末或字符串結(jié)束 | yo$ |
yo | yop |
\b |
單詞邊界 | \byo\b |
mu yo mu | muyomu |
\B |
非單詞邊界 | \Byo\B |
muyomu | mu yo mu |
預(yù)查
符號(hào) | 描述 | 例子 | 能匹配 | 不能匹配 |
---|---|---|---|---|
(?=xxx) |
正向肯定預(yù)查,從任何匹配xxx的字符串開(kāi)始處匹配查找字符串 | yo(?=o) |
yoo | yo |
(?!xxx) |
正向否定預(yù)查笤闯,從任何不匹配pattern的字符串開(kāi)始處匹配查找字符串 | yo(?!o) |
yo | yoo |
(?<=xxx) |
反向肯定預(yù)查堕阔,與正向肯定預(yù)查類擬,只是方向相反 | (?<=y)o |
yo | yoo |
(?<!xxx) |
反向否定預(yù)查颗味,與正向否定預(yù)查類擬超陆,只是方向相反 | (?<!goo)d |
mood | good |
通配
符號(hào) | 描述 | 例子 | 能匹配 | 不能匹配 |
---|---|---|---|---|
[ ] |
字符集合 | [ace] |
a, c, e | d |
[ - ] |
字符范圍 | [a-c] |
a, b, c | d |
[^ ] |
不包含的字符集合 | [^abc] |
d, e | a, b, c |
. |
匹配除斷行外的任何字符 | yo. |
yoo, yop, yoh | yo |
\s |
空白字符,等于[\n\r\f\t ] | la\sla |
la la | lala |
\S | 非空白字符浦马,等于[^\n\r\f\t] | la\Sla |
la+la | la la |
\d |
數(shù)字 | \d{2} |
23 | 1a |
\D |
非數(shù)字 | \D{3} |
yoo, abc | yo1 |
\w |
單詞时呀,等于[a-z-A-Z0-9_] | \w{4} |
v123 | v12.3 |
\W |
非單詞,等于[^a-z-A-Z0-9_] | .$%? |
.$%? | .ab? |
特殊字符
特殊字符 | 描述 |
---|---|
\n |
斷行 |
\r |
回車符 |
\t |
制表符 |
\v |
垂直制表符 |
\f |
換頁(yè) |
[\b] |
退格 |
其他
符號(hào) | 描述 | 例子 | 能匹配 | 不能匹配 |
---|---|---|---|---|
| |
或捐韩,其一 | a|b |
a, b | c |
(xxx) |
匹配xxx并獲取這一匹配 | yo(o|p) |
yoo 或 yop | yoh |
(?:xxx) |
匹配xxx但不獲取這一匹配 | y(?:o) |
yo | ya |
+ |
重復(fù)1次或多次 | yo+ |
yo, yooo | y |
* |
重復(fù)0次或多次 | yo* |
y, yoo | yop |
? |
出現(xiàn)0次或1次 | yo? |
y, yo | ye |
?? |
?的懶惰模式退唠,盡可能少匹配 | yoo?? |
yo | yoo |
+? |
+的懶惰模式 | yo+? |
yo | yoo |
*? |
*的懶惰模式 | yo*? |
y | yo |
{n} |
重復(fù)n次 | yo{2} |
yoo | yooo |
{n,m} |
重復(fù)n到m次 | yo{1, 3} |
yo,yooo | yoooo |
{n,} |
重復(fù)至少n次 | yo{2,} |
yoo, yooo | yo |