findall分组匹配的捕获组与非捕获组
一、产生问题
使用findall匹配的时候如果正则表达式中使用了分组,返回值为列表形式,并且往往和想要得到的结果相差许多
例如在前文的ip匹配中,基本正则表达式为:
r'\D(\d{1,3}\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\D'
这个正则表达式如果使用findall进行正则匹配,结果如下:
import re
str = "we1764.12.12.76frg45.23.278.34hrdf127.0.0.1jj255.45.45.45bght"
result = re.findall(r'\D(\d{1,3}\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\D',str)
print