'.' 預設匹配除\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
'\a' 只從字元開頭匹配,re.search("\aabc","alexabc") 是匹配不到的
'\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'
import reprint((re.match(".+","sad\n").group()))#match是從頭開始匹配,.預設匹配除\n之外的任意乙個字元,無+匹配一次,有+匹配多次,group是直接取匹配上的值
print(re.search("f$","ssstgf"))#$匹配f結尾,search全部匹配
print(re.findall("a","a rtt afe a r a"))#匹配前乙個字元n到m次,findall把所有匹配到的字元放到以列表中的元素返回
s='abc, abc, defg, dds'
print(re.split('\w+',s)) #把string轉換成list。結果:['abc', 'abc', 'defg', 'dds']
print(re.split('(\w+)',s))#\w匹配任何非單詞字元,如果加上括號,結果會同時返回去掉的值
inputstr="hello python,ni hao c,zai jian python"
replacestr=re.sub(r"hello (\w+),ni hao (\w+),zai jian python","php",inputstr)#匹配字元並替換
print (replacestr)
print(re.subn('\d+','*','age=123, name =456, job=789'))#subn 返回乙個元組,第二個元素是替換的次數
flags是匹配模式
re.i (re.ignorecase): 忽略大小寫
re.m (multiline): 多行模式,改變'^'和'$'的行為
re.s (dotall): 點任意匹配模式,改變'.'的行為
re.l (locale): 使預定字元類 \w \w \b \b \s \s 取決於當前區域設定
re.u (unicode): 使預定字元類 \w \w \b \b \s \s \d \d 取決於unicode定義的字元屬性
re.x (verbose): 詳細模式。這個模式下正規表示式可以是多行,忽略空白字元,並可以加入注釋
importjsonpathjsonpath
d= },
]}res= d["
stu_info
"][1]['
name
'] #
取某個學生姓名的原始方法:通過查詢字典中的key以及list方法中的下標索引
print(res) #
輸出結果是:小黑
import
jsonpath
res1=jsonpath.jsonpath(d,'
$..name
') #
巢狀n層也能取到所有學生姓名資訊,$表示最外層的{},..表示模糊匹配
print(res1) #
輸出結果是list:['小白', '小黑']
res2= jsonpath.jsonpath(d,'
$..bank_name')
print(res2) #
輸出結果是list:['中國銀行']
res3=jsonpath.jsonpath(d,'
$..name123
') #
當傳入不存在的key(name)時,返回false
print(res3) #
輸出結果是:false
python re模組常用方法
萬用字元 含義示例 匹配結果 reg1 reg2 匹配表示式reg1或者表示式reg2 foo bar bar.匹配除 n以外的任意字元 ab.b abdb 匹配字串起始部分 匹配字串終止部分 匹配0次或多次前面出現的正規表示式 匹配一次或多次前面出現的正規表示式 匹配0次或1次前面出現的正規表示式...
python re模組操作記錄
記錄一些re模組的操作和說明 match 物件 match.start i 返回第i分組的開始位置 match.end i 返回第i分組的結束位置 m.group i 返回第i分組的匹配字串 m.span i 返回第i分組的開始位置與結束位置的元組 i的預設值均為0,代表整個匹配字串 操作說明 re...
python re模組操作記錄
記錄一些re模組的操作和說明 match 物件 match.start i 返回第i分組的開始位置 match.end i 返回第i分組的結束位置 m.group i 返回第i分組的匹配字串 m.span i 返回第i分組的開始位置與結束位置的元組 i的預設值均為0,代表整個匹配字串 操作說明 re...