python re常用操作

2022-06-13 05:03:12 字數 2685 閱讀 1911

'.' 預設匹配除\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 re

print((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): 詳細模式。這個模式下正規表示式可以是多行,忽略空白字元,並可以加入注釋

import

jsonpath

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

jsonpath

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