对一个IP地址的匹配字符串。
自己的想法是,[1-9]{1,3}匹配其中的'127',(.[0-9]{1,3}){3}匹配后面的‘.0.0.1’
但如果采用r'[1-9]{1,3}.[0-9].[0-9].[0-9]'就能匹配到‘127.0.0.1’
不知道为什么输出会多出一个‘.1‘
希望能得到解答
应该是这样进行匹配
import re
ip ='192.168.1.1'
trueIp =re.search(r'(([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])\.){3}([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])',ip)
print(trueIp)
而findall这个函数
findall(string[, pos[, endpos]])
是在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
string : 待匹配的字符串。
pos : 可选参数,指定字符串的起始位置,默认为 0。
endpos : 可选参数,指定字符串的结束位置,默认为字符串的长度。