re.search(pattern,string,flags=0)
例:re.search(r'love','i love you')
返回乙個符合pattern的全部字元的list。
p=re.compile(r'[a-z]')
res=re.findall(p,'iladfaww')
print(res)
['i', 'a', 'd', 'f', 'a', 'w', 'w']
p=re.compile(r'[a-z]+',re.ignorecase)
res=p.search('adswqefs',2,5)#後兩個引數表示範圍
print(res)
<_sre.sre_match object; span=(2, 5), match='swq'>
p=re.compile(r'(love) (you)')
res=p.search('i love you')
print(res.group(0))
print(res.group(1))
print(res.group(2))
print(res.start())
print(res.end())
print(res.span())
love you
love
you2
10(2, 10)
編譯標誌
編譯標誌有兩個名字:完整名和簡寫名
1.ascii,a:使得\w
,\b
,\s
和\d
只能匹配ascii字元
2.dotall,s:使得.
匹配任何符號,包括換行符
3.ignorecase,i:不區分大小寫
4.locale,l:支援當前的語言,區域設定
5.multiline,m:多行匹配,影響^
和$
6.verbose,x :啟用詳細的正規表示式
python3正規表示式特殊符號及用法
\d
:匹配數字
\d
:與\d
相反,相當於[^0-9]
\s
:匹配任何空白字元(包含空格,換行符,製表符等),相當於[\t\n\r\f\v]
\s
:與上相反
\w
匹配任何單詞字元
\w
與上相反
\b
匹配單詞的開始或者結束。\b
在字元類中可表示空格
\b
與上相反
.
:匹配除換行符以外的任何字元
|
:或
*
:匹配前面的表示式0次或者而多次==
+
:匹配前面的表示式1次或者多次==
?
:匹配前面的表示式0次或者1次==
\
:
1.轉義字元
2.類似於\d
這種用途
3.引用序號對應的子組所對應的字串(兩位數)
r'(abc)(.com)\2'匹配的就是'abc.com.com』
4.(三位數,首位可為0)表示八進位制數所代表的ascii碼
[..]
:字元類,匹配所包含的任意乙個字元
^
:
1.匹配字串的開始位置
2.如果設定了re.multiline標誌,則表示換行符之後的位置
3.[^..]
取反,只能放在最開頭。若不在最開頭,則表示^
本身。
%
:
1.匹配字串的結束位置,
2.如果設定了re.multiline標誌,則表示換行符之前的位置
:匹配前面的內容m~n次
[a-z]
:匹配a-z
abz
:匹配abbbc
abc
:匹配a(3-10個)bc
\b
^
$
\a
\z
等用於指定位置,這個位置應滿足的一定的條件(即斷言),稱為零寬斷言。
(?=exp)
例abc(?=.com)
只會匹配後面緊跟著.com
的abc
(?!exp)
(?<=exp)
例:(?<=abc).com
只會匹配前面為abc
的.com
(?預設是貪婪模式(在符合條件下盡可能多的匹配):
res=re.search(r'abc','abcccccc')可以利用print(res)
<_sre.sre_match object; span=(0, 8), match='abcccccc'>
?
變為非貪婪模式
res=re.search(r'abc?','abcccccc')
print(res)
<_sre.sre_match object; span=(0, 4), match='abcc'>
使用(....)
會捕獲其中內容
使用(?:...)
不會捕獲其中內容
res=re.search(r'((\d\d|\d|1\d\d|2[0-4]\d|25[0-5])\.)((\d\d|\d|1\d\d|2[0-4]\d|25[0-5]))','2.1.1.1')
python正規表示式元字元 正規表示式
字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...
Python 正規表示式
1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...
Python正規表示式
學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...