Python学习(正则表达式与模式匹配下篇)
来源:互联网 发布:海洛因在淘宝的名称 编辑:程序博客网 时间:2024/06/07 05:38
十、通配字符:.(句点)字符称为“通配符”,它匹配除换行之外的所有字符,一次只会匹配一个字符。
>>> nums = re.compile(r'20.')>>> num = nums.findall('2017 2018 2019')>>> num['201', '201', '201']>>> nums = re.compile(r'20..')>>> num = nums.findall('2017 2018 2019')>>> num['2017', '2018', '2019']
十一、用点和星匹配所有字符:点不能唯一不能匹配换行符,可以在compile()中再加一个参数。
>>> somes = re.compile(r'.*',re.DOTALL)>>> some = somes.search('dsauygfisaf65s4df64s65')>>> some.group()'dsauygfisaf65s4df64s65'
十二、不区分大小写的匹配 :添加re.I参数。
>>> chars = re.compile('CsDn')>>> char = chars.search('CSDN cSDN CsDn')>>> char.group()'CsDn'
>>> chars = re.compile('CsDn',re.I)>>> char = chars.search('CSDN cSDN')>>> char.group()'CSDN'
十三、用sub()方法替换字符串:sub()需传入两个参数,第一个参数是用来替换的字符串,用于取代发现的匹配。第二个参数是一个字符串,即正则表达式要匹配的文本。
>>> import re>>> name = re.compile(r'\w+')>>> name.sub('Lee','Tony')'Lee'有时候,你可能需要使用匹配的文本本身作为替换的一部分。在sub()的第一个参数中,可以输入\1、\2、\3……来表示“在替换中输入分组(\w)1、2、3……的文本”。例如:如果想要隐去密探的姓名,只显示他们姓名的第一个字母,你可以使用正则表达式Agent(\w)\w*,传入r'\1****'作为sub()的第一个参数。字符串中的\1将由分组1匹配的文本所替代,也就是正则表达式的(\w)分组,一次类推,查找所有相匹配的文本做替换。
>>> agentNamesRegex = re.compile(r'Agent (\w)\w*')>>> agentNamesRegex.sub(r'\1****', 'Agent Alice told Agent Carol that Agent Eve knew Agent Bob was a double agent.')'A**** told C**** that E**** knew B**** was a double agent.'十四、管理复杂的正则表达式:
如果正则是这样的:phoneRegex = re.compile(r'((\d{3(\s*(ext|x|ext.)\s*\d{2,5})?)'),将会不利于识别,我们可以用添加re.VERBOSE参数给它进行分开注释,#符号和它后面直到行末的内容都会被忽略。而且表示正则表达式的多行字符串中,多余的空白字符也不认为是要匹配的文本模式的一部分。
>>> phoneRegex = re.compile(r'''( (\d{3}|\(\d{3}\))? # area code (\s|-|\.)? # separator \d{3} # first 3 digits (\s|-|\.) # separator \d{4} # last 4 digits (\s*(ext|x|ext.)\s*\d{2,5})? # extension )''', re.VERBOSE)compile()只能接受一个值作为它的第二参数,如果想做多种判断,比如前面说的忽略大小写字母,可以使用管道字符(|)来分割判断条件,满足多种需求。
>>> someRegexValue = re.compile('foo', re.IGNORECASE | re.DOTALL | re.VERBOSE)
阅读全文
2 0
- Python学习(正则表达式与模式匹配下篇)
- Python学习(正则表达式与模式匹配上篇)
- [ Java学习 ] 正则表达式与模式匹配
- Python 正则表达式(模式匹配)
- Python 正则表达式(模式匹配)
- Python 正则表达式(模式匹配)
- Python 正则表达式(模式匹配)
- 正则表达式与模式匹配
- python中的正则表达式(模式匹配)
- 常用正则表达式模式匹配学习笔记
- JavaScript中的模式匹配与正则表达式
- Bash Shell-正则表达式与模式匹配
- Bash Shell-正则表达式与模式匹配
- 正则表达式之量词与匹配模式
- python 字符串匹配与正则表达式
- python正则表达式与文本匹配
- 正则表达式-匹配模式
- python 正则表达式匹配
- $.ajax()方法详解
- ansible之ad-hoc commands
- oracleday10(对java代码重构)
- vue项目中,使用axios跨域处理
- Python 异常处理
- Python学习(正则表达式与模式匹配下篇)
- 精准计算程序或CPU运行时间
- configuration with name ‘default’ not found
- [莫比乌斯反演的若干技巧]
- 近5年133个Java面试问题列表
- 如何用js得到当前页面的url信息方法(JS获取当前网址信息)
- (3)ODI环境搭建_安装Oracle Data Integrator
- 每日一题(39)—— sizeof
- Python 内置函数