----
====== 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()