1. re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match()就返回none。
import re
line
="this hdr-biz 123 model server 456"
pattern=r"123"
matchobj = re.match( pattern,
line
)
2. re.search 掃瞄整個字串並返回第乙個成功的匹配。
import re
line=
"this hdr-biz model server"
pattern=r"hdr-biz"
m = re.
search
(pattern, line)
3. python 的re模組提供了re.sub用於替換字串中的匹配項。
import re
line=
"this hdr-biz model args= server"
patt=r'args='
name = re.
sub(patt,
"", line)
4. compile 函式用於編譯正規表示式,生成乙個正規表示式( pattern )物件,供 match() 和 search() 這兩個函式使用。
import re
pattern = re.
compile
(r'\d+'
)
5. re.findall 在字串中找到正規表示式所匹配的所有子串,並返回乙個列表,如果沒有找到匹配的,則返回空列表。
import re
line=
"this hdr-biz model args= server"
patt=r'server'
pattern = re.
compile
(patt)
result = pattern.
findall
(line)
6. re.finditer 和 findall 類似,在字串中找到正規表示式所匹配的所有子串,並把它們作為乙個迭代器返回。
import re
it = re.
finditer
(r"\d+"
,"12a32bc43jf3"
)for match in it:
print (match.
group()
)
7.正規表示式模式語法中的特殊元素例項
描述[pp]ython
匹配 「python」 或 「python」
rub[ye]
匹配 「ruby」 或 「rube」
[aeiou]
匹配中括號內的任意乙個字母
[0-9]
匹配任何數字。類似於 [0123456789]
[a-z]
匹配任何小寫字母
[a-z]
匹配任何大寫字母
[a-za-z0-9]
匹配任何字母及數字
[^aeiou]
除了aeiou字母以外的所有字元
[^0-9]
匹配除了數字外的字元
#用空格分割
re.split
(r'\s+'
,'a b c'
)返回:[
'a',
'b',
'c',
'd']
#用逗號分隔
re.split
(r'[\s\,]+'
,'a,b, c d'
)返回:[
'a',
'b',
'c',
'd']
函式
說明sub(pattern,repl,string)
把字串中的所有匹配表示式pattern中的地方替換成repl
[^**]
表示不匹配此字符集中的任何乙個字元
\u4e00-\u9fa5
漢字的unicode範圍
\u0030-\u0039
數字的unicode範圍
\u0041-\u005a
大寫字母unicode範圍
\u0061-\u007a
小寫字母unicode範圍
sub()
將匹配項替換為指定文字:
示例
import re
str =
"the rain in spain"
x = re.
sub(
"\s"
,"9"
, str)
print
(x)
替換前兩項:
示例
import re
str =
"the rain in spain"
x = re.
sub(
"\s"
,"9"
, str,2)
print
(x)
#過濾掉除了中文以外的字元
#coding=utf-8
import re
with open
('aaa.txt'
,'r'
,encoding=
"utf-8"
) as f:
#data = f.read().decode('gbk').encode('utf-8')
data = f.
read()
print
(data)
data = re.
sub(
'[\u4e00-\u9fa5]',""
, data)
print
(data)
# -
*- coding: utf-8-
*-import re
#提取字串中的中文
str =
"hello,world!!%[545]你好234世界。。。"
str = re.
sub(
"[a-za-z0-9\!\%\[\]\,\。]",""
, str)
print
(str)
#提取字串裡的中文,返回陣列
pattern=
"[\u4e00-\u9fa5]+"
regex = re.
compile
(pattern)
results = regex.
findall
("adf中文adf發京東方"
)print
(results)
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模組的講解很簡單易懂,內容不多但起碼把人領進門了,...