D21_3.1匹配分组
Posted banbosuiyue
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了D21_3.1匹配分组相关的知识,希望对你有一定的参考价值。
# ### 正则表达式 => 匹配分组
# 把想要匹配的内容,用小圆括号包起来,表达分组,并且会优先显示(优先显示就是只显示它)
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) #应该这样写
可以把有意义的字符变得无意义,还可以把无意义的字符变得有意义,用来转义字符
: 换行
. : 单纯的匹配一个点
"""
"""
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匹配分组的主要内容,如果未能解决你的问题,请参考以下文章