javascript - 用于查找除以 172 开头的 IP 地址之外的所有 IP 地址的正则表达式

标签 javascript php regex node.js regex-negation

我希望正则表达式找到不以 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}$

Regular expression visualization

Debuggex Demo

然后您可以使用它来过滤掉任何已经进行的匹配。


或者,如果您不是从 IP 地址列表开始,则可以使用负前瞻来立即获取所有地址。

^(?!172)\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}$

Regular expression visualization

Debuggex Demo


要小心一点,因为这可能会匹配多个 IP 地址 - 例如 400.660.226.602将会被捕获 - 即使真实的 IP4 地址不包含高于 255 的数字。也许这不会影响您的用例 - 但需要记住这一点。


根据下面的注释,如果您要在文档中的任何位置搜索 IP 地址,而不是在其自己的行中,请使用 \b而不是^$

\b(?!172)\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}\b

Regular expression visualization

Debuggex Demo

这将匹配日志格式,例如,日志格式在消息中包含 IP 地址,而不是在其自己的行上。

[10:01:22] Connection from 10.14.242.211 established.

关于javascript - 用于查找除以 172 开头的 IP 地址之外的所有 IP 地址的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39524637/

相关文章:

javascript - react : Why should a parent component have to rerender to access child state changes?

javascript - 大量重复的 if/else 语句的最大优化/代码减少是多少?

php - 在 Windows 和 Linux 上获取绝对 URL 路径

php - mysql中如何连接表中的字段

Python正则表达式以两种不同的顺序匹配两个字符串?

javascript - 未设置 CORS header - 我可以请求图像 url,然后将其返回给自己吗?

javascript - 为什么刷新页面后我的项目发生了变化?

.net - 修复Youtube URL RegEx(.NET ReGex引擎语法)

php - 在不使用 mysqli 的情况下使用 PHP 和 MySQL 准备语句

PHP 在 string2 中查找 string1,其中 string1 源自 MySQL 表