正则表达式多行:IP校正

时间:2012-08-01 17:27:06

标签: regex

我已经获得了ip:port形式的ip地址列表,但其中一些是格式错误的,例如:

OCTETS ARE EXAMPLES, It doesn't matter that they are over 255
12.345.678.90:12345
58412.345.678.91:12391
12.345.678.92:1823
12.345.678.93:80

我想从第二个IP中删除额外的数字,使用正则表达式,因为它经常发生,我有〜2000个这些来过滤

我的第一个想法是找到:\r\n[0-9]{3,15}(.*\r\n[0-9]{1,3})并替换为\2\1\2,但似乎没有效果。

我必须假设下一行具有相同的前导数字,这是不必要的。如果任何人都可以向我展示一个只能修复它的解决方案,如果下一行带有包含在点之前的数字,那将非常值得赞赏。

编辑:我正在使用Notepad ++进行此正则表达式

另外,即使你使用八位字节检测,如果我想要的数字是12,第一个八位字节是112,该怎么办?

2 个答案:

答案 0 :(得分:0)

尝试用^\d+(\d{2}\.)

替换\1

答案 1 :(得分:0)

(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]{1,2})\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]{1,2})

这应匹配任何有效的IP地址。 (IE。不是“257.4.33.134”,因为257太大了)

注意:这不会与您的示例匹配,因为八位字节太大

欢迎使用StackOverflow!