正則表達式
- 用途:對字符串按照某種規(guī)則進行檢索、替換
基本語法
-
元字符:
-
.
: 可以用來表示除了換行符之外的任一字符 -
[abc]
: 字符集砚蓬,可以用來表示字符集中的任一字符 -
[^abc]
: 字符集捣作,表示除了字符集外的任一字符 -
[a-z]
: 字符范圍态秧,表示a-z范圍內(nèi)的任一字符 -
[^a-z]
: 字符范圍惩激,表示除了a-z之外的任一字符 -
\d
: 表示0-9范圍內(nèi)的任一數(shù)字,==[0-9] -
\D
: 表示除了0-9之外的任一字符苞慢,==[^0-9] -
\s
: 表示所有的空白字符 -
\S
: 表示除了空白字符外的任一字符 -
\w
: ==[a-zA-Z0-9_] -
\W
: ==[^a-zA-Z0-9_] -
\b
: 表示匹配單詞的邊界 -
\B
: 表示不匹配單詞的邊界 -
^
: 表示字符串的行首 -
$
: 表示字符串的行尾
-
注意:如果在正則表達式中有特殊意義诵原,在使用時需要使用轉(zhuǎn)義符
-
字符重復(fù)
-
*
: 表示前面的字符可以重復(fù)至少0次 -
+
: 表示前面的字符可以重復(fù)至少1次 -
?
: 表示前面的字符可以重復(fù)0次或者1次 -
{n}
: 表示前面的字符重復(fù)n次 -
{n,}
: 表示前面的字符重復(fù)至少n次 -
{m,n}
: 前面的字符重復(fù)次數(shù)區(qū)間為:[m,n]
-
注意:字符的重復(fù)是指模式的重復(fù)
-
分組與斷言
-
x|y
: 表示匹配x或者y -
(pattern)
: 表示一個分組,自動按順序給編號 -
\num
: 表示引用標(biāo)號為num的分組(引用內(nèi)容不是模式) -
(?:pattern)
: 取消分組,表示括號用于指定優(yōu)先級 -
(?<name>pattern)
: 命名分組挽放,python中使用(?P<name>pattern)
-
f(?=pattern)
: 表示在f后一定有pattern -
(?<=pattern)f
: 表示在f前一定有pattern -
f(?!pattern)
: 表示在f后一定沒有pattern字符 -
(?<!pattern)f
: 表示在f前一定沒有pattern字符
-
注意:斷言不是分組绍赛,不占用分組號,相當(dāng)于一個判定條件
-
引擎選項
-
re.I
: 表示忽略大小寫 -
re.M
: 表示多行模式 -
re.S
: 表示單行模式 -
re.X
: 表示忽略表達式中的空白符
-
注意:單行模式時骂维,'.'符號可以匹配所有字符(包括換行符)