python re正規表示式

2022-08-24 05:06:16 字數 3045 閱讀 7785

#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...