大話Python正則表達式
python的正則表達式模塊re
import re
match_object=re.compile(r"")
result=re.match(match_object,"resource string")
result=re.search(match_object,"resource string")
result=re.findall(match_object,"resource string") # 注意區別
match_object.match("resource string").group
match_object.search("resource string").group
match_object.findall("resource string") #上下兩種方式任選一種,findall是返回列表
print result.group
match與search的區別:
match是從源字元串的頭部開始,僅當從第一個字元開始匹配成功,才能從字元串中匹配到目標字元串
search是從源字元串任意位置開始匹配
match和search的共同點是一旦匹配成功就返回,因而只會從源字元串中成功匹配一個目標字元串
findall 是將源字元串中的所有匹配的目標字元串,以列表的形式返回
match_object=re.compile(r"") # r 表示原字元串,比如存在""字元時,""不再表示轉義的意思,而是 保持本身作為一個普通字元串的含義
""用在字元串中的意思是轉義,例如"\n"不再表示換行符,而是普通字元"
"
print "
" #輸出換行
print "\n"
#輸出普通字元,沒有換行意思
print r"
"
#輸出普通字元,沒有換行意思
print r"\n"
\n #輸出普通字元
match_object=re.compile(r"")
匹配目標,正則表達式定義:
"d{}" "d"匹配數字,"{}"表示匹配的個數,{5}匹配5個,{1,}至少匹配1個,{3,8}匹配3至8個;
"^" 以什麼開始
"$" 以什麼結束
"[0-9a-z]" 匹配中包含的一個字元
"[^0-9]" 表示匹配非數字的字元串,"^"用在裡面不再表示以什麼開始,而是表示非
"你|我|他" "|"表示"或"的意思
"?" 表示匹配次數要麼為0,要麼為1
"*" 表示匹配任一次數,即是0次或0次以上
"+"表示至少匹配一次
"*?" 表示非貪婪匹配 即是儘可能少的匹配
p = re.compile(r"woyouy*?")
result = re.match(p, "woyouyyyyyyy")
print result.group
woyou
"." 通配符,可以表示除換行以外的所有字元,如果加上re.DOTALL,使"."什麼都可以匹配,還有re.IGNORECASE,re.VERBOSE
re.VERBOSE 可以排除注釋和空白字元
p = re.compile(r"good.haha", re.DOTALL)
result = re.findall(p, "good
haha")
print result
["good
haha"]
p = re.compile(r"good.haha", re.IGNORECASE | re.DOTALL)
result = re.findall(p, "GOOD
HahA")
print result
["GOOD
HahA"]
p = re.compile(r"""
w+. # asdf
w+""" #12
,re.IGNORECASE | re.DOTALL | re.VERBOSE)
result = re.findall(p, "GOOD
HahA")
print result
["GOOD
HahA"]
"w" 表示匹配單詞,它是包括數字的
"s" 表示匹配空白/換行/製表符
分割字元串:
p = re.compile(r"d+")
result = re.split(p, "tom32jerry456haha")
print result
["tom", "jerry", "haha"]
替換字元串:
p = re.compile(r"d+")
result = re.sub(p, "replace", "tom32jerry456haha")
prinr result
tomreplacejerryreplacehaha
※Javascript 「繼承」
※使用CoApp創建NuGet C++靜態庫包
TAG:達人科技 |
※Python 正則表達式
※Python中的正則表達式
※Python爬蟲之正則表達式
※Perl 正則表達式
※Python 模式匹配與正則表達式
※Python正則表達式語法補充
※Python 正則表達式(分組)
※Scala 正則表達式
※Python正則表達式的7個使用典範
※MongoDB 正則表達式
※不要在Python中編寫 lambda 表達式了
※Keep Talking丨我們如何表達愛。
※正則表達式和 Cookie使用
※lambda表達式foreach性能分析
※無法用言語表達的愛!The Void/IF I Were a cat/The Colour Monster
※Diabetes:新研究發現調節leptin表達的lncRNA
※[python] 常用正則表達式爬取網頁信息及分析HTML標籤總結
※XQuery FLWOR 表達式
※旨在表達自我!NIKE x Patta全新膠囊系列Lookbook發布!
※Being in the World——淺談Olafur Eliasson作品在建築、景觀、及城市設計視角下的表達