我是python和regex新手,我一直试图将IP地址日志隐藏在txt文件中。我应该避免使用for循环和if检查,如果可能的话,因为txt文件很大(158MB)
(所有IP地址都以172开头)
这是我尝试的代码:
import re
txt = "test"
x = re.sub(r"^172\.*", "XXX.\", txt)
print(x)
示例txt文件:
ABCDEFGHIJKLMNOPRST172.12.65.10RSTUVYZ
ASDG172.56.23.14FSDGHSFSDFDSFHSF
!'^%%&!'+!'+^%&!ÂSDBSDF172.23.23.23SADASFSA
ASGFGD 172.12.23.56 ASDSAFASFDASSADSA
期望输出:
ABCDEFGHIJKLMNOPRSTXXX.XXX.XXX.XXXRSTUVYZ
ASDGXXX.XX.XX.XXFSDGHSFSDFDSFHSF
!'^%%&!'+!'+^%&!ÂSDBSDFXXX.XXX.XXX.XXXSADASFSA
ASGFGD XXX.XXX.XXX.XXX ASDSAFASFDASSADSA
您确实应该使用
re.sub
关于正则表达式的解释(对于您所请求的内容,您实际上不需要组,但这是了解正则表达式各部分的好方法:
^(172)(\.(?:[0-9]{1,3}\.){2}[0-9]{1,3})$
用法:
172(?:\.\d{1,3}){3}
代码:
输出:
Demo & explanation
相关问题 更多 >
编程相关推荐