0

我有一个 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,该怎么办?

4

2 回答 2

0

尝试替换^\d+(\d{2}\.)\1

于 2012-08-01T17:35:22.160 回答
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 地址。(即不是“257.4.33.134”,因为 257 太大了)

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

欢迎来到 StackOverflow!

于 2012-08-01T17:37:06.703 回答