我有几个 IP 地址,例如:
115.42.150.37
115.42.150.38
115.42.150.50
如果我想搜索所有 3 个 ip 地址,我应该写什么类型的正则表达式?例如,如果我这样做 115.42.150.*
(我将能够搜索所有 3 个 IP 地址)
我现在能做的是: /[0-9]{1-3}\.[0-9]{1-3}\.[0-9]{1-3}\.[0-9]{1-3}/
但它似乎不能正常工作。
谢谢。
原文由 KennC. 发布,翻译遵循 CC BY-SA 4.0 许可协议
你得到的正则表达式已经有几个问题:
首先,它包含点。在正则表达式中,点表示“匹配任何字符”,您只需要匹配一个实际的点。为此,您需要对其进行转义,因此在点的前面放一个反斜杠。
其次,但是您要匹配每个部分中的任意三位数字。这意味着您将匹配 0 到 999 之间的任何数字,这显然包含很多无效的 IP 地址数字。
这可以通过使数字匹配更复杂来解决;这个网站上还有其他答案解释了如何做到这一点,但坦率地说,这不值得付出努力——在我看来,最好将字符串按点拆分,然后将四个块验证为数字整数范围——即:
希望有所帮助。