【python深入3】正则表达式

前端之家收集整理的这篇文章主要介绍了【python深入3】正则表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1)正则匹配

. 匹配任意除换行符"\n"的字符 a.c abc
\ 转义字符,能使特殊字符保持原来意思 a\.c a\\c a.c a\c
\d 数字:[0-9] a\dc a1c
\s 空白字符 a\sc a c
\w 单词字符 a\wc 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"不全是小写."
解析:判断字符串是否全部为小写.
----------------------------------------------------------------------------------------------------------------------------
原文链接:https://www.f2er.com/regex/357776.html

猜你在找的正则表达式相关文章