加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【python深入3】正则表达式

发布时间:2020-12-14 06:40:28 所属栏目:百科 来源:网络整理
导读:1)正则匹配 . 匹配任意除换行符"n"的字符 a.c abc 转义字符,能使特殊字符保持原来意思 a.c ac a.c ac d 数字:[0-9] adc a1c s 空白字符 asc a c w 单词字符 awc abc * 匹配前一个字符0或无限次 abc* ab abccc + 匹配前一个字符1次或无限次 abc+

1)正则匹配

. 匹配任意除换行符"n"的字符 a.c abc
转义字符,能使特殊字符保持原来意思 a.c ac a.c ac
d 数字:[0-9] adc a1c
s 空白字符 asc a c
w 单词字符 awc abc
* 匹配前一个字符0或无限次 abc* ab abccc
+ 匹配前一个字符1次或无限次 abc+ abc abccc
? 匹配前一个字符0次或1次 abc? ab abc
{m} 匹配前一个字符m次 ab{2}c abbc
{m,n} 匹配前一个字符m至n次 ab{1,2}c abc abbc
*? +? ?? {m,n}? 使* + ? {m,n}变为非贪婪模式

2)数量词的贪婪模式和非贪婪模式

python里的数量词默认是贪婪的,总是尝试匹配尽可能多的字符.
例如:正则匹配"ab*"如果用于查找"abbbc",将找到"abbb";如果使用非贪婪的数量词"ab*?",将找到"a"

3)实例

>>>s='(abc)def'
>>>m=re.search("((.*)).*",s)
>>>m.group(1)
abc
解析:1)对括号进行转义;2)分组匹配.group(0)匹配整个字符串,group(1)匹配第一个分组
---------------------------------------------------------------------------------------------------------------------------
>>>a="kdlal123dk345"
>>>m=re.search("([0-9]+(dk){0,1})[0-9]+",a)
>>>m.group(1),m.group(2)
('123dk','dk')
---------------------------------------------------------------------------------------------------------------------------
s1='adkkdk'
an=re.search('^[a-z]+$',s1)
**(此处还可以写re.match('[a-z]+$',s1);match默认会从开头开始匹配x**

ifan:
printan.group()
else:
print"不全是小写."
解析:判断字符串是否全部为小写.
----------------------------------------------------------------------------------------------------------------------------

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读