Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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
Javascript Regex在方括号和方括号之间获取ip_Javascript_Regex - Fatal编程技术网

Javascript Regex在方括号和方括号之间获取ip

Javascript Regex在方括号和方括号之间获取ip,javascript,regex,Javascript,Regex,我有点陷入了regex的困境 我需要得到一个介于方括号和方括号之间的ip地址。 这会给我IP地址 ([0-9]{1,3}[\.]){3}[0-9]{1,3} 但如果我这样做,我也会得到括号 \(\[([0-9]{1,3}[\.]){3}[0-9]{1,3}\]\) 我尝试使用前瞻,但它不起作用(我很确定这是一个语法错误,但我不知道如何修复它) 这必须在Javascript中工作。您需要使用lookarounds (?<=\(\[)(?:[0-9]{1,3}\.){3}[0-9]{1,3

我有点陷入了regex的困境

我需要得到一个介于方括号和方括号之间的ip地址。 这会给我IP地址

([0-9]{1,3}[\.]){3}[0-9]{1,3}
但如果我这样做,我也会得到括号

\(\[([0-9]{1,3}[\.]){3}[0-9]{1,3}\]\)
我尝试使用前瞻,但它不起作用(我很确定这是一个语法错误,但我不知道如何修复它)


这必须在Javascript中工作。

您需要使用lookarounds

(?<=\(\[)(?:[0-9]{1,3}\.){3}[0-9]{1,3}(?=\]\))

在javascript中,它就像

> var str = "foo ([122.122.122.122]) bar"
undefined
> console.log(/\(\[((?:[0-9]{1,3}\.){3}[0-9]{1,3})\]\)/.exec(str)[1]);
122.122.122.122
如果输入包含多个地址,则使用此

> var str = "foo ([122.122.122.122]) bar foo ([122.122.122.122]) bar"
undefined
> var re = /\(\[((?:[0-9]{1,3}\.){3}[0-9]{1,3})\]\)/g;
undefined
> var m;
undefined
> while ((m = re.exec(str)) != null) {
... console.log(m[1]);
... }
122.122.122.122
122.122.122.122
/([((?:\d{1,3}。){3}\d{1,3})]/g


正则表达式没有标准。您需要指定用于评估正则表达式的工具。这是JavaScript吗?是的,它可以工作,但它也必须在JS中工作,我忘了在我的OP中添加它。Look behinds在JS中不工作。这里是一个较短的正则表达式var re=/(((((?:\d{1,3}\。?){4})]/g;这更多的是一个评论,因为更好的格式,它被作为一个答案
> var str = "foo ([122.122.122.122]) bar"
undefined
> console.log(/\(\[((?:[0-9]{1,3}\.){3}[0-9]{1,3})\]\)/.exec(str)[1]);
122.122.122.122
> var str = "foo ([122.122.122.122]) bar foo ([122.122.122.122]) bar"
undefined
> var re = /\(\[((?:[0-9]{1,3}\.){3}[0-9]{1,3})\]\)/g;
undefined
> var m;
undefined
> while ((m = re.exec(str)) != null) {
... console.log(m[1]);
... }
122.122.122.122
122.122.122.122