#re模組 正規表示式:匹配字串,模糊匹配# '.' 預設匹配除\n之外的任意乙個字元,若指定flag dotall, 則匹配任意字元,包括換行
# '^' 匹配字元開頭,若指定flags multiline, 這種也可以匹配上(r"^a", "\nabc\neee", flags=re.multiline)
# '$' 匹配字元結尾,或e.search("foo$", "bfoo\nsdfsf", flags=re.multiline).group()也可以
# '*' 匹配* 號前的字元0次或多次,re.findall("ab*", "cabb3abcbbac")結果為['abb', 'ab', 'a']
# '+' 匹配前乙個字元1次或多次,re.findall("ab+", "ab+cd+abb+bba")結果['ab', 'abb']
# '?' 匹配前乙個字元1次或0次
# '' 匹配前乙個字元m次
# '' 匹配前乙個字元n到m次,re.findall("ab", "abb abc abbcbbb")結果'abb', 'ab', 'abb']
# '|' 匹配| 左或| 右的字元,re.search("abc|abc", "abcbabccd").group()結果'abc'
# '(...)' 分組匹配,re.search("(abc)a(123|456)c", "abcabca456c").group()結果abcabca456c
# 字符集:取消元字元的特殊功能(\^-例外) re.findall('[a-z]','adx')結果為['a','d','x']
# re.findall('[^t]','djhiojt') 取反除了t的字元
# re.findall('[^4,5]','djhi4oj5t') 取反除了4和5的字元
# '\a' 只從字元開頭匹配,re.search("\aabc", "alexabc")是匹配不到的
# '\b' 匹配乙個特殊字元邊界re.findall(r'i\b','hello, i am a list')結果為['i'],以空格為特殊字元邊界
# '\z' 匹配字元結尾,同$
# '\d' 匹配數字0 - 9
# '\d' 匹配非數字
# '\w' 匹配[a - za - z0 - 9]
# '\w' 匹配非[a - za - z0 - 9]
# 's'匹配空白字元、\t、\n、\r, re.search("\s+", "ab\tc1\n3").group()結果'\t'
# '(?p...)'分組匹配re.search("(?p[0-9])(?p[0-9])(?p[0-9])", "371481199306143242").groupdict("city")
# 結果
# ret = re.search("(?p[0-9])/(?p\w)", "3714811/www")
# print(ret.group()) #4811/ww
# print(ret.group('id'))#4811
# print(ret.group('name'))#ww
# print(re.search('(as)+','aregasas').group()) #asas
# print(re.search('(as)|3', '3as').group()) # 3
# 最常用的匹配語法
# re.match 從頭開始匹配,只在字串開始匹配
# re.search 只匹配包含第乙個,返回乙個物件,物件可以呼叫group()方法拿到結果
# re.findall 把所有匹配到的字元放到以列表中的元素返回
# re.splitall 以匹配到的字元當做列表分隔符
# re.sub 匹配字元並替換
# re.compile() 編譯乙個規則變成物件,由物件呼叫方法
# re.i(re.ignorecase): 忽略大小寫(括號內是完整寫法,下同)
# m(multiline): 多行模式,改變'^'和'$'的行為(參見上圖)
# s(dotall): 點任意匹配模式,改變'.'的行為
import re
# s ='hello world'
## print(s.find('llo'))#查詢
# ret = s.replace('ll','xx') #替換
# print(ret)
# print(s.split('w')) #分割
# ret = re.findall('w\wl', 'hello world')
# print(ret)##
# cet = re.findall('w..l', 'hello world')
# print(cet)
# ret = re.search('sb','asdjknsbmkjosb')
# print(ret) # 取到的是物件
# print(ret.group()) # 結果
# ret = re.search('a\.','a.gj').group() #結果a.
# print(ret)
# ret = re.search('\\\\','\asdfe')
# print(ret) #結果none
## ret = re.search(r'\\','\asdfe')
# print(ret) #結果none
## ret = re.findall('\bbas','basasdfe')
# print(ret) #結果空
## ret = re.findall(r'\bbas','basasdfe')
# print(ret) #結果['bas]匹配成功
ret = re.split('s','basasdfe')
print(ret) #結果['ba', 'a', 'dfe']
ret = re.split('[a,s]','basasdfe')
print(ret) #結果['b', '', '', '', 'dfe']
Python re 正規表示式
import re 匯入re模 result re.match 正規表示式,要匹配的字串 使用match 方法進行匹配操作 result.group 使用group 方法提取資料 案例 匹配變數名是否符合識別符號命名規則 res re.match a za z w name 123 print re...
正規表示式 python re
字元功能 或 分組 num 引用分組num匹配到的字串 p 分組起別名 p name 引用別名為name分組匹配到的字串 示例import re label res re.match r w w label print res.group www.itcast.cn h1 html import r...
python re 正規表示式
1 re.match str id s paragraph.text re.match 表示從變數 paragraph.text 所代表的 字串 的開始匹配模式 str id s 模式 str id s 表示 以id 某個數字 開始,s 表示0個或者多個空白符。表示結尾。2 searchobj re...