我正在解析iptables的日志文件,寻找源IP。为此,我使用了re.findall
的两个实例,一个用于查找“SRC = x.x.x.x”,另一个用于实际获取IP。
for line in iptables:
src = re.findall('SRC=\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', line)
ip = re.findall('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', src)
有没有更好的方法来达到相同的效果?也就是说,只是获得SRC IP。
对于我现在想要做的事情,这无关紧要,但我想知道是否有更好的方法来实现同样的未来发展。
答案 0 :(得分:3)
您应该将IP部分放入一个组中,即在括号内。这样,您可以<h:outputStylesheet library="css" name="style.css" />
匹配并获得匹配内的search
。
group
此处,>>> line = "SRC=127.0.0.1"
>>> m = re.search(r'SRC=(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})', line)
>>> m.group(0)
'SRC=127.0.0.1'
>>> m.group(1)
'127.0.0.1'
是整个匹配,group(0)
包含在第一组group(1)
中的部分,依此类推。