Javascript Regex在方括号和方括号之间获取ip
我有点陷入了regex的困境 我需要得到一个介于方括号和方括号之间的ip地址。 这会给我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
([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