用于查找除 IP 地址以外的所有 IP 地址都以 172 开头的正则表达式
Regex for find All ip address except IP address starts with 172
我希望正则表达式查找不是以 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.
如果您在野外寻找地址,请使用否定前瞻:
\b((?!172)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b
看到一个demo on regex101.com。
试试这个:
^172\.(?:\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){2}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b|null)$
它不仅检查以 172 开头的 ip 地址,还检查有效的 ip 地址,即每个值不能超过 255
我希望正则表达式查找不是以 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.
如果您在野外寻找地址,请使用否定前瞻:
\b((?!172)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b
看到一个demo on regex101.com。
试试这个:
^172\.(?:\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){2}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b|null)$
它不仅检查以 172 开头的 ip 地址,还检查有效的 ip 地址,即每个值不能超过 255