---- ====== ip ====== ==== shell ==== \([1-9][0-9]\{0,2\}\.\)\{3\}\([1-9][0-9]\{0,2\}\) # 所有网段 10\(\.[1-9][0-9]\{0,2\}\)\{3\} # 内网10.0.0.0 - 10.255.255.255 172\.[1-3][0-9]\(\.[1-9][0-9]\{0,2\}\)\{2\} # 内网172.16.0.0 - 172.31.255.255 192\.168\(\.[1-9][0-9]\{0,2\}\)\{2\} # 内网192.168.0.0 - 192.168.255.255 - 1-9 任意一个数字出现一次 - 0-9 任意一个数字出现0-2次 - .出现一次 - 1,2,3组合起来出现3次 # 完成了 xxx.xxx.xxx. - 1-9 任意一个数字出现一次 - 0-9 任意一个数字出现0-2次 # # 完成了 xxx.xxx.xxx.xxx \([0-9]\{0,3\}\.\)\{3\}\([0-9]\{0,3\}\) # 允许0开头 \([0-9]\{3\}\.\)\{3\}\([0-9]\{3\}\) #允许0开头,但每个段必须是3为如 010.000.096.120 ==== python ==== Python的正则语法和shell的一样,在shell的语法基础上去掉【反斜杠】,但是.要保留【反斜杠】 file = '/root/fang_tmp_dir/old' import re for i in open(file): i = i.strip() m = re.search(r'([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}',i) #所有网段 if m: print m.group()