码迷,mamicode.com
首页 > 其他好文 > 详细

D21_3.1匹配分组

时间:2019-11-09 19:29:47      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:lex   style   var   str   贪婪模式   模式   字符串   search   组合   

# ### 正则表达式 => 匹配分组

# 把想要匹配的内容,用小圆括号包起来,表达分组,并且会优先显示(优先显示就是只显示它)
print(re.findall(‘(.*?)_good‘,‘wusir_good alex_good secret男_good‘))
# ?: 取消括号优先显示的功能
print(re.findall(‘(?:.*?)_good‘,‘wusir_good alex_good secret男_good‘))

# | 代表或 , a|b 匹配字符a 或者 匹配字符b . 把字符串长的写在前面,字符串短的写在后面

strvar = "abcpiopipoabcd234"
lst = re.findall("abc|abcd",strvar)  #只去匹配abc去了,没有匹配到abcd

lst = re.findall("abcd|abc",strvar)  #应该这样写

 

\ 可以把有意义的字符变得无意义,还可以把无意义的字符变得有意义,用来转义字符
\n : 换行
\. : 单纯的匹配一个点
"""
"""
5.6
\d\.\d

39.56
\d+\.\d+

# 匹配小数和整数
lst = re.findall(r"\d+\.\d+|\d+",strvar)
print(lst)

# 使用分组合并正则 匹配小数和整数
lst = re.findall(r"\d+(?:\.\d+)?",strvar)
print(lst)
"""前面是\d+数字,后面是.数字,然后?代表取1个或者不取,贪婪模式有就取"""

# 匹配www.baidu.com 或者 www.oldboy.com
strvar = "www.oldboy.com www.baidu.com"
lst = re.findall(r"(?:www)\.(?:baidu|oldboy)\.(?:com)",strvar)

 

# search
"""
findall 匹配所有内容,缺陷:不能把匹配到的内容和分组里面的内容同时显示出来,返回的是列表
search 匹配到一个内容就直接返回,优点:可以把分组的内容,和实际匹配到的内容分开,同时显示,返回的是对象obj

obj.group() 获取匹配到的内容
obj.groups() 获取分组里面所有的内容

D21_3.1匹配分组

标签:lex   style   var   str   贪婪模式   模式   字符串   search   组合   

原文地址:https://www.cnblogs.com/banbosuiyue/p/11827303.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!