個人筆記。
python的正規表示式包括以下方法:
match(pattern,string,flag)
search(pattern,string,flag)
span()
group(n)
groups()
compile(string)
findall(string)
sub(pattern,repl,string)
1.flag可以是re.m或者re.i等,後者忽略大小寫,前者是換行模式,re.m舉例:
str="i am a boy\nyou are a girl"
print re.search(
"\w+$"
,s2,re.m)
.group(
)# 結果:boy
print re.search(
"\w+$"
,s2)
.group(
)# 結果:girl
2.match和search返回的都是match物件,都只返回匹配成功的乙個結果,其中match從開頭開始匹配,
search則無此限制。在獲取匹配後的串前,應習慣加上是否is
none的判斷
3.要想獲取匹配後的字串的start point,end point,則用span(
),舉例:
print re.search(
"\w+$"
,s2,re.m)
.span(
)# 結果:(7, 10)
4.想要獲取匹配後的字串值,則用group(
)或者group(0)
5.想要獲取匹配後的某一組字串值,則用group(n)
,n>=
1,4和5舉例:
s3 =
"computer123cpu"
print re.search(
"([a-z]+)123([a-z]+)"
,s3)
.group(
)# computer123cpu
print re.search(
"([a-z]+)123([a-z]+)"
,s3)
.group(0)
# computer123cpu
print re.search(
"([a-z]+)123([a-z]+)"
,s3)
.groups(
)# ("computer","cpu")
print re.search(
"([a-z]+)123([a-z]+)"
,s3)
.group(1)
# computer
print re.search(
"([a-z]+)123([a-z]+)"
,s3)
.group(2)
# cpu
6.可以使用re.
compile
(pattern)將匹配規則轉化成pattern格式,然後使用match或者search或者findall
7.findall返回匹配結果的列表,舉例:
s3 =
"computer123cpu"
print re.findall(
"([a-z]+)123([a-z]+)"
,s3)
# [('computer', 'cpu')]
print re.findall(
"[a-z]+123[a-z]+"
,s3)
# ['computer123cpu']
print re.findall(
"[a-z]+"
,s3)
# ['computer', 'cpu']
8.常用正規表示式規則符號:
. 常用於匹配除了換行符外的任一字元
a+>=
1個a a? 0
|1個a
a*>=
0個a [0-
9] 從0到9任一數字
[a-z] 從a到z的任一字元
[abc] a或b或c(乙個)
[^abc] 非a或b或c(乙個)
^a 以a開頭
b$ 以b結尾
a n個a
\d 乙個數字:0123456789
\d 乙個非十進位制的任意字元 =[^
0-9]
\w a-z|a-z|0-
9|_ (.
*?) 非貪婪,精準匹配 (.
*) 貪婪,非精準匹配
最後兩個的舉例:
str="elephant is big animal"
pattern1 = re.
compile
("elephant (.*?) .*"
) pattern2 = re.
compile
("elephant (.*) .*"
)print pattern1.search(
str)
.group(1)
# is
print pattern2.search(
str)
.group(1)
# is big
python 正規表示式 re
match 和 search 的區別 match是從字串開頭匹配,而search是在整個字串中匹配。如 p re.compile a z p.match message none 因為開頭是 因此無法匹配 而 m p.search message print m re.matchobject ins...
python正規表示式 re
re.match 嘗試從字串的開始匹配乙個模式,如 下面的例子匹配第乙個單詞。import retext jgood is a handsome boy,he is cool,clever,and so on.m re.match r w s text ifm print m.group 0 n m...
python正規表示式(re)
在python中re模組用於對正規表示式 regular expression 的支援。正規表示式是可以匹配文字片段的模式。一 正規表示式的書寫 1 萬用字元 點 可以匹配任何字元 除了換行符 如 ike 可以匹配 bike like 等 2 對特殊字元進行轉義 在正規表示式中如果是引用特殊字元作為...