大佬们,python 小白请教一个正则表达式的问题:
1 编码目的:找到字符串中IP地址的信息
2 编码内容:
import re
pattern = r'([1-9]{1,3}(\.[0-9]{1,3}){3})'
str1 = '127.0.2.3 192.168.4.66'
match = re.findall(pattern,str1)
print(match)
3 编码输出:
[('127.0.2.3', '.3'), ('192.168.4.66', '.66')]
4 疑问:
为什么输出除了预想中的IP地址之外,还有有’.3' 和’.66‘?
5 个人想法:
([1-9]{1,3}(\.[0-9]{1,3}){3}) 应该就是代表了 IP地址的格式,是不是python会先运行一遍外部的小括号内的内容,再运行一遍内部小括号的内容,但是如果是这样的话,为什么运行内部小括号里的内容输出是第三个小数点后的.3 和.66呢,而不是.0和.168,难道{3} 在运行外部小括号时表示重复三次,到内部小括号时{3}虽然在括号外部,但是仍然起作用,表示第三个结果?