正規表示式是用來描述目標字串特徵的一串特殊的文字,它定義了一種匹配模式,可以用來匹配與檢索符合該模式的文字。學習正規表示式首先要了解元字元。元字元
作用string
匹配包含string的字串
re1 | re2
匹配正規表示式re1或者re2
^匹配以指定字串開頭的字串
$匹配以指定字串結尾的字串
.匹配除\n之外任意字串
*匹配0次或者多次前文正規表示式
+匹配1次或者多次前文正規表示式
?匹配0次或者1次前文正規表示式
(…)匹配括號內的正規表示式並另存為子組
[…]匹配包含方括號中字符集任一字元的字串
{}匹配字串長度
\d匹配十進位制數字
\w匹配字母或者數字
\s匹配空格字元\n、\t、\r、\v、\f 等
match():從字串的起始位置開始匹配;若匹配成功,則返回匹配物件,否則返回none。
>>
>
import re
>>
> s=
"python1 python2 python3 python"
>>
>
print
(re.match(
"python"
,s))
; span=(0
,6), match=
'python'
>
>>
> s1=
"p python1 python2 python3 python"
>>
>
print
(re.match(
"python"
,s1)
)none
search():與match()函式類似,不同的是search()函式不要求從字串起始位置開始匹配。
>>
>
import re
>>
> s1=
"p python1 python2 python3 python"
>>
>
print
(re.search(
"python"
,s1)
); span=(2
,8), match=
'python'
>
findall():用於查詢字串中所有符合正規表示式的字串,返回乙個列表。
>>
>
import re
>>
> s=
"python1 python2 python3 python"
>>
>
print
(re.findall(
"python"
,s))
['python'
,'python'
,'python'
,'python'
]
split():用於按某個字元將目標字串分解成若干個部分,並將這些部分以列表的形式返回。
>>
>
import re
>>
> s =
"python1 python2 python3 are all python"
>>
>
print
(re.split(
" ",s))[
'python1'
,'python2'
,'python3'
,'are'
,'all'
,'python'
]
sub():用於將目標字串中的某些字元替換成指定字串。
>>
>
import re
>>
> s =
"python1 python2 python3 are all python"
>>
>
print
(re.sub(
"python"
,"python"
,s))
python1 python2 python3 are all python
group()和groups():當匹配沒有子組要求(子組要求即正規表示式中包含(…)元字元,系統會匹配括號內的正規表示式並另存為子組)時,group()會返回整個匹配結果,而groups()會返回乙個空元組。
>>
>
import re
>>
> s =
"python1 python2 python3 are all python"
>>
> a = re.search(
"python"
,s)>>
> a.group(
)'python'
>>
> a.groups()(
)>>
> b = re.search(
"([a-z]*)([0-9]*)"
,s)>>
> b.group(
)'python1'
>>
> b.group(2)
'1'>>
> b.groups()(
'python'
,'1'
)
compile():編譯函式,可以縮短正規表示式的匹配時間,因為未經預編譯的字串在匹配過程中需要直譯器來編譯,當匹配次數巨大時,該函式起非常大的作用。
>>
>
import re
>>
> s =
"python1 python2 python3 are all python"
>>
> pattern = re.
compile
(r"([a-z]*)([0-9]*)"
)>>
> b = pattern.search(s)
>>
> b.group(
)'python1'
python 正規表示式相關
注意 python3.x 的print要有括號,python 2.x的不需要 放上學習時寫的例子 import rem re.match r w w p.hello world print m.string m.string print m.re m.re print m.pos m.pos pri...
正規表示式 相關
限定符 說明 指定零個或更多個匹配 例如 w 或 abc 等效於。指定乙個或多個匹配 例如 w 或 abc 等效於。指定零個或乙個匹配 例如 w?或 abc 等效於。指定恰好 n 個匹配 例如 pizza 指定至少 n 個匹配 例如 abc 指定至少n 個但不多於m 個匹配。指定盡可能少地使用重複的...
正規表示式相關
我們知道匹配字串通常用正規表示式,因為幾乎每種語言都有自己的正規表示式引擎,所以效率會比你自己寫演算法要高效的多。下面來看下一些常用的正規表示式運算子。注意 這裡主要是個人總結,所以都會以一些自己用到的東西為主,如果要看具體的api,請在網上查詢 基礎知識儲備 稍微注意下一些細節的地方,比如 和 的...