我有几个IP地址,例如:
115.42.150.37
115.42.150.38
115.42.150.50
如果要搜索所有3个ip地址,应该写哪种类型的正则表达式?例如,如果我这样做115.42.150.*(我将能够搜索所有3个IP地址)
115.42.150.*
我现在可以做的事情是这样的:/[0-9]{1-3}\.[0-9]{1-3}\.[0-9]{1-3}\.[0-9]{1-3}/但是它似乎不能很好地工作。
/[0-9]{1-3}\.[0-9]{1-3}\.[0-9]{1-3}\.[0-9]{1-3}/
谢谢。
您所拥有的正则表达式已经有几个问题:
首先,它包含点。在正则表达式中,点表示“匹配任何字符”,您只需要匹配实际的点。为此,您需要对其进行转义,因此请在圆点前面加上反斜杠。
其次,但是您要匹配每个部分中的任何三个数字。这意味着您将匹配0到999之间的任何数字,其中显然包含许多无效的IP地址数字。
这可以通过使数字匹配更加复杂来解决。该站点上还有其他答案可以解释如何执行此操作,但是坦率地说,这不值得付出努力- 以我的观点,您最好将字符串用点分隔开,然后将四个块验证为数字整数范围-即:
if(block >= 0 && block <= 255) {....}
希望能有所帮助。