Python中的正则表达式? 5
pattern=r"([1-9]{1,3}(\.[0-9]{1,3}){3})"str1="127.0.0.1"match=re.findall(pattern,str1...
pattern = r"([1-9]{1,3}(\.[0-9]{1,3}){3})"
str1 = "127.0.0.1"
match = re.findall(pattern,str1)
print(match)
输出显示:[('127.0.0.1', '.1')]
为什么会多出一个‘.1’不理解,怎么才能解决 展开
str1 = "127.0.0.1"
match = re.findall(pattern,str1)
print(match)
输出显示:[('127.0.0.1', '.1')]
为什么会多出一个‘.1’不理解,怎么才能解决 展开
1个回答
展开全部
因为正则表达式中有两组小括号,即两个分组
findall会以元组形式返回所有分组中的内容,即[('127.0.0.1', '.1')]
其中'127.0.01'表示匹配最外层大括号的内容
'.1'表示匹配'\.[0-9]{1,3}'的内容(最后一次重复时为.1)
由于('\.[0-9]{1,3}')为需要重复三次的分组,该括号不能省略
而使用findall就一定会显示括号分组的内容
若想只显示127.0.0.1而不显示'.1',可考虑使用match方法
返回从字符串起始位置开始,第一次匹配正则表达式的内容
match返回的结果为re.Match对象,可通过group()显示匹配的字符串,即127.0.0.1
通过groups()显示匹配的所有分组,即('127.0.0.1', '.1')
如图所示:
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询