[ ] 一个 pil 字母 开始 调用 arch style
正则表达式:元字符:. ,^, $, *, +, ?, {}, [],| ( ),\
功能:字符串模糊匹配查询
转义符加普通符号,有特殊含义
转义符跟元字符,元字符变普通符号
\:转义符
\b 在 assic 码里是响铃符
- >>> re.findall(r'c\\l','abc\le')
- ['c\\l']
- >>> re.findall('c\\\\l','abc\le')
- ['c\\l']
- >>> re.findall('c\\\l','abc\le')
- ['c\\l']
- >>>
字符集中只有三个特殊符号: - ^ \
[] 字符集:多选一," 或 "
贪婪匹配:按规则尽可能多多匹配内容
re.findall('-?\d+\.?\d*','234,-45,8.9,-7.9,6')
管道符:| 或
- >>>import re
- >>> res=re.findall('abc+','abcccccdvd')
- >>>print(res)
- ['abccccc']
非贪婪模式:在规则后加'?' 切换成非贪婪模式,在该模式下,按着最小重复数匹配
s="yuan"## ret=re.findall(".*?",s) # yuan# print(ret)
# ret=re.search(".*?",s) # yuan# print(ret)
- 几个常用的非贪婪匹配Pattern
- * ?重复任意次,但尽可能少重复 + ?重复1次或更多次,但尽可能少重复 ? ?重复0次或1次,但尽可能少重复 {
- n,
- m
- } ? 重复n到m次,但尽可能少重复 {
- n,
- } ? 重复n次以上,但尽可能少重复
- .*?的用法:
Re 模块
- --------------------------------
- . 是任意字符
- * 是取 0 至 无限长度
- ? 是非贪婪模式。
- 何在一起就是 取尽量少的任意字符,一般不会这么单独写,他大多用在:
- .*?a
- 就是取前面任意长度的字符,到底一个 a 出现
有名分组:
显示全部的内容在分组括号里加上'?:'
分组后查找后只显示分组里的内容
分组
():
- res=re.search('(?P<year>20\d{2})-(?P<mouth>[01]\d)','2014-08')
- >>> res.group('year')
- '2014'>>> res.group('mouth')
- '08'
re.findall(pattern, str,flag)
re.compile(pattern,flag) 编译 返回一个可调用的对象
Max: 最大分割次数
re.split(pattern,str,max)
==> 匹配成功,返回对象。匹配失败,返回 None
==> 只从开始位置匹配符合条件
Re.match(pattern, str,flag)
==> 匹配成功,返回对象。匹配失败,返回 None
==> 只匹配第一个符合条件
Re.search(pattern, str,flag)
===> 优先筛选(分组的情况)
===> 结果是个列表
- obj=re.compile("\d+") ret=obj.findall("akhsd4325asdk43") # re.findall("\d+","") print(ret)
Re.finditer( ) 返回迭代器对象
- # ret=re.finditer("\d+","dasfjk324khk4234kj234hkj234hkj234kj234k2j34hk2j3h4")
- # print(ret)
- #
- # print(next(ret).group())
正则表达式 & re 模块
来源: http://www.bubuko.com/infodetail-2140810.html