我正在尝试查看字符串是否是IP地址。由于IPv6正在推出,最好也支持它,所以为了简单起见,我只想替换任何不是点或数字的东西。
我通过搜索找到了stackoverflow上的这个正则表达式:
\d+(?:\.\d+)+
但它与我想要的相反。是否可以反转该正则表达式?
谢谢!
答案 0 :(得分:4)
这个正则表达式将匹配任何不是点或数字的东西:
/[^\.0-9]/
答案 1 :(得分:2)
尝试以下方法:
[^.0-9]+
匹配任何不是点或数字的东西
答案 2 :(得分:0)
我可能会尝试这样的事情(未经测试):
修改强>
旧的正则表达式离开了,这似乎做得更好(经过测试):
找到:.*?((?:\d+(?:\.\d+)+|))
替换:$1
全球化,单行。
在Perl中:s/.*?((?:\d+(?:\.\d+)+|))/$1/sg
答案 3 :(得分:-1)
正则表达式快捷方式区分大小写。我认为你试图做这样的事情,但你想要的是资本D.
[\D] = any non-digit.
看起来像这样:
preg_replace('/[\D]/g', '', $string);
javascript就像这样:
string.replace(/[\D]/g, '');