正则表达式模式接受一个或多个ip地址? [英] regular expression pattern to accept one or multiple ip addresses?
问题描述
我在正则表达式下面使用
I am using below regular expression pattern
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地址之一
It will accept any one of the below ip address
1.1.2.3 or 192.122.134.1 or 198.23.45.56
但是我希望它应该接受单个以及ip地址以及逗号分隔,如下所示
But i want it should accept single as well as ip addresses with comma separated as well like below
1.1.2.3,192.122.134.1,198.23.45.56
我必须在正则表达式中做些什么改变?
What changes i have to do in my regular expression?
推荐答案
慢慢变得难以理解,但在这里你是:
It slowly becomes incomprehensible, but here you are:
^(\d | [1-9] \d | 1 \\\\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])))* $
^(\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 :
let's call your IP regexp IP:
IP =((\d | [1-9] \d | 1 \\\ 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 = ((\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])))
所以我们只需要用逗号重复它:
so we just have to repeat it with comma:
^ IP(,IP)* $
^IP(,IP)*$
这篇关于正则表达式模式接受一个或多个ip地址?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!