Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 需要正则表达式来捕获不包括环回的IP_Regex - Fatal编程技术网

Regex 需要正则表达式来捕获不包括环回的IP

Regex 需要正则表达式来捕获不包括环回的IP,regex,Regex,我想在一个文件中查找所有ip地址。问题是我需要排除127.0.0.1地址。我在LinuxBash中使用grep。 以下是我已经得到的: [0-9]+.\.[0-9]+\.[0-9]+\.[0-9]+ 实际上,所有子网127.0.0.0/8都是为环回保留的(因此,127.45.78.32也是环回的地址)。因此,要通过regexp解决您的问题,需要首先检查输入字符串是否不匹配: ^127\. 然后检查它是否与普通IP正则表达式匹配。这将执行以下操作: ^(?!127\.0{1,3}\.0{1,3

我想在一个文件中查找所有ip地址。问题是我需要排除127.0.0.1地址。我在LinuxBash中使用grep。 以下是我已经得到的:

[0-9]+.\.[0-9]+\.[0-9]+\.[0-9]+

实际上,所有子网127.0.0.0/8都是为环回保留的(因此,127.45.78.32也是环回的地址)。因此,要通过regexp解决您的问题,需要首先检查输入字符串是否不匹配:

^127\.
然后检查它是否与普通IP正则表达式匹配。

这将执行以下操作:

^(?!127\.0{1,3}\.0{1,3}\.0{0,2}1$)((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
试验

我已将量词更改为
{1,3}

(?!127\.0{1,3}\.0{1,3}\.0{0,2}1$)
意味着您不能拥有
127.0.0.1
(最终填充一些
0

((25[0-5]| 2[0-4][0-9]|[01]?[0-9][0-9]?)\){3}
用于前三位数字组及其
(25[0-5]| 2[0-4][0-9]|[01]?[0-9][0-9]?)
用于最后一位数字组

我已经将正则表达式锚定到字符串的开头
^
和结尾
$

如果要排除所有环回(因此
127.*.*.

试验

这两个正则表达式基于regex from减去关于非捕获组的部分

这里我只需要测试第一组数字是否不是
127
(?!127)


此正则表达式已完成,它不接受类似于
256.256.256.256
的内容,但它仅适用于IPv4。

您尝试了什么?你用的是什么正则表达式?还请注意,您需要避开这些点。提示:使用消极前瞻。@HamZa他向我们展示了他所做的尝试。你用什么语言使用它?如果不等于127.0.0.1,简单地说
,是否太麻烦了?@arshajii我的观点是,他已经有了一个正则表达式来匹配IP地址。但这不是这个问题的重点。关键是还要排除特定地址。他是否试图解决这一点?不可以。另一方面,由于
127.0.0.127
也是一个有效的环回地址,因此它可能会变得非常复杂。
^(?!127)((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$