这个正则表达式([a-z0-9]{1,4}:+){3,5}[a-z0-9]{1,4}|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3
几乎完成了匹配IP地址(v4和v6)的工作,而不幸的是,对于下面的文本和类似的文本,它也会以粗体显示字段:
来自mail.example.com(example.com.[213.239.250.131])by mx.google.com,ESMTPS id为xc4si15480310lbb.82.2 014.10.26.06 .16.58 for(version = TLSv1.2 cipher = ECDHE-RSA-AES128-GCM -SHA256位= 128/128); 太阳,2014年10月26日06:16:58 -0700(PDT)
收到:来自ssservices1-1(192.168.20.142)的mail.supershuttle.com(192.168.20.110),带有Microsoft SMTP Server id 14.2.347.0 ; 2015年4月21日星期二
收到:来自ssservices1-1(192.168.20.142)的mail.supershuttle.com(192.168.20.110),带有Microsoft SMTP(TLS)服务器ID 14.2.347.0 ; 2015年4月21日星期二
接收:从plug.mysitehosted.com(plug.mysitehosted.com [10.248.1.153])(使用的TLSv1与密码DHE-RSA-AES256-SHA)由0.0.0.0:2500(TREX/5.0.19); 星期二,2014年3月11日06:14:03 GMT
省略这些匹配的最佳方法(我将使用Python)是什么?两个前面是文本'id',但在第一种情况下,不是直接在它之前.
([a-z0-9]{1,4}:+){3,5}[a-z0-9]{1,4}|(?<!id )(?<!\.)\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b(?!\.)
Run Code Online (Sandbox Code Playgroud)
你可以试试这个。通过lookaheads
我们确保ip地址前面或后面没有。参见.
演示。
https://regex101.com/r/hI0qP0/3