我希望正则表达式找到不以 172.0.0.0 开头的 IP 地址。
我写了一些正则表达式^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$
查找所有 IP 地址。
最佳答案
.
正则表达式中的字符是匹配所有内容的。要在这种情况下使用它,您必须转义它。
还要将其限制为仅以 172 开头的 IP 地址,只需将其硬编码到正则表达式中,如下所示:
^172\.\d{1,3}\.\d{1,3}.\d{1,3}$
然后您可以使用它来过滤掉任何已经进行的匹配。
或者,如果您不是从 IP 地址列表开始,则可以使用负前瞻来立即获取所有地址。
^(?!172)\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}$
要小心一点,因为这可能会匹配多个 IP 地址 - 例如 400.660.226.602
将会被捕获 - 即使真实的 IP4 地址不包含高于 255
的数字。也许这不会影响您的用例 - 但需要记住这一点。
根据下面的注释,如果您要在文档中的任何位置搜索 IP 地址,而不是在其自己的行中,请使用 \b
而不是^
和$
\b(?!172)\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}\b
这将匹配日志格式,例如,日志格式在消息中包含 IP 地址,而不是在其自己的行上。
[10:01:22] Connection from
10.14.242.211
established.
关于javascript - 用于查找除以 172 开头的 IP 地址之外的所有 IP 地址的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39524637/