正则表达式模式可以接受一个或多个IP地址?

我正在使用以下正则表达式模式

pattern="^(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))$|\s*

它将接受以下任何IP地址

1.1.2.3 or 192.122.134.1 or 198.23.45.56

但是我希望它应该接受逗号分隔的单个以及IP地址,如下所示

1.1.2.3,192.122.134.1,198.23.45.56

我必须在正则表达式中做哪些更改?

回答:

它慢慢变得难以理解,但是您在这里:

^(\ d | [1-9] \ d | 1 \ d \ d | 2([0-4] \ d | 5 [0-5]))。(\ d | [1-9] \ d | 1

\ d \ d | 2([0-4] \ d | 5 [0-5]))。(\ d | [1-9] \ d | 1 \ d \ d | 2([0-4] \ d

| 5 [0-5]))。(\ d | [1-9] \ d | 1 \ d \ d | 2([0-4] \ d | 5 [0-5]))(, (\ d |

[1-9] \ d | 1 \ d \ d | 2([0-4] \ d | 5 [0-5]))。(\ d | [1-9] \ d | 1 \ d \ d

| 2([0-4] \ d | 5 [0-5]))。(\ d | [1-9] \ d | 1 \ d \ d | 2([0-4] \ d | 5

[0-5]))。(\ d | [1-9] \ d | 1 \ d \ d | 2([0-4] \ d | 5 [0-5])))* $

这里发生的是:

让我们将您的IP regexp 称为:

IP =((\ d | [1-9] \ d | 1 \ d \ d | 2([0-4] \ d | 5 [0-5])))。(\ d | [1-9] \

d | 1 \ d \ d | 2([0-4] \ d | 5 [0-5]))。(\ d | [1-9] \ d | 1 \ d \ d | 2([0-

4] \ d | 5 [0-5]))。(\ d | [1-9] \ d | 1 \ d \ d | 2([0-4] \ d | 5 [0-5]))) )

所以我们只需要用逗号重复一下:

^ IP(,IP)* $

以上是 正则表达式模式可以接受一个或多个IP地址? 的全部内容, 来源链接: utcz.com/qa/404014.html

回到顶部