Python标准库之re模块
re模块用于正则表达式。
正则表达式在线测试:http://c.runoob.com/front-end/854
正则表达式元字符可以参考:https://www.w3cschool.cn/zhengzebiaodashi/regexp-metachar.html
re.match()
从字符串开头往后匹配。
import re x = re.match(r"asdjakd\d{4}","asdjakd1231") print(x.group())
#输出
asdjakd1231
re.search()
只会搜索一个结果。
import re x = re.search("\d{4}","1a23sd1231jakd1231") print(x.group())
#输出
1231
re.findall()
import re x = re.findall("\d{4}","1a23sd1231jakd1231") print(x) #输出 ['1231', '1231']
re.split()
分割字符。
import re x = re.split("\d","abc1sdas2xxx") print(x) #输出 ['abc', 'sdas', 'xxx']
re.sub()
替换字符
import re x = re.sub("\d","|","abc1sdas2xxx") print(x) #输出 abc|sdas|xxx
如果想只替换一次。
import re x = re.sub("\d","|","abc1sdas2xxx",count=1) print(x)
#输出
abc|sdas2xxx
匹配模式
re.I(re.IGNORECASE): 忽略大小写 re.M(MULTILINE): 多行模式 re.S(DOTALL): 点任意匹配模式,可以匹配\n
分组匹配成字典
import re x = re.search("(?P<province>[0-9]{4})(?P<city>[0-9]{2})(?P<year>[0-9]{4})(?P<birthday>[0-9]{4})" ,"330623197501031922") print(x.groupdict())
#输出
{'province': '3306', 'city': '23', 'year': '1975', 'birthday': '0103'}