正则表达式——python对字符串的查找匹配

正则表达式——python对字符串的查找匹配,第1张

正则表达式——python对字符的查找匹配

Python中的正则表达式要用到re模块,下面先介绍一下正则表达式需要用到的特殊字符和说明

常用的RegEx基础语法 语法说明d匹配一个数字字符D匹配一个非数字字符s匹配任何不可见字符(空格、制表符、换行符等)S匹配任何可见字符w匹配任何单词字符W匹配任何非单词字符.匹配所有字符^从字符串开头开始匹配,比如^d表示以一个数字字符开头$从字符串末尾开始匹配,比如d$表示以一个数字字符结尾*匹配前一个字符任意次+匹配前一个字符一次或多次?匹配前一个字符零次或一次{m}匹配前一个字符m次{m,n}匹配前一个字符最少m次最多n次转义字符[]比如[a-z]表示匹配从a到z之间的所有字符串|或,比如A|B表示匹配A或B()精确匹配括号中指定的模式 常用的RegEx函数 函数说明search从字符串中进行搜索,成功则返回匹配目标,失败则返回Nonematch从字符串开头进行匹配,成功则返回匹配目标,失败则返回Nonefullmatch匹配整个字符串split根据模式分割字符串findall查找字符串中所有非重叠匹配finditer类似于findall,但返回Python迭代器sub用提供的字符串替代匹配模式

以下为部分示例:对于split函数,我们在对字符串进行分割的时候可以直接调用split方法,再次不再进行

>>> import re#导入包
>>> a='xiaoming:wo jiao xiaoming,wo de dianhua shi +86-666666'
>>> print(re.search(pattern='d+Wd+',string=a))
#此处输出的时一个match对象

>>> mp=re.search(pattern='d+Wd+',string=a)#查找电话号码
>>> print(mp.group())#使用group方法获取于指定模式相匹配的字符串
86-666666
>>> print(mp.start())#获取第一个匹配字符串的索引
45
>>> print(mp.end())#获取匹配字符串的
54
>>> print(mp.span())#获取索引范围
(45, 54)

>>> print(re.findall(pattern='w+',string=a))
['xiaoming', 'wo', 'jiao', 'xiaoming', 'wo', 'de', 'dianhua', 'shi', '86', '666666']

>>> m_sub=re.sub(pattern='w+:',string=a,repl='xiaohong:')#模式替代,使用repl传入的字符串替代匹配到的第一个字符串
>>> print(m_sub)
xiaohong:wo jiao xiaoming,wo de dianhua shi +86-6666

#编译模式
>>> p=re.compile('d{6}')#预先设定好匹配的模式
>>> m1=p.search(a)#对预先设定好的模式调用查找
>>> print(m1.group())获取查找到的字符串
666666

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/5689883.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存