当前位置: 首页 > 面试题库 >

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

樊腾
2023-03-14
问题内容

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

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 称为:

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)* $



 类似资料:
  • 我需要使用通配符类型搜索筛选一组字符串,如下所示: 寻找应该匹配你好,但不是Helo 查找应该匹配"pant"和"想要"但不匹配"ant" 寻找应该匹配"吉普赛人"和"典型" 代表一个或多个字符。我不介意手写或基于正则表达式的搜索。有什么想法吗?典型的。NET方法的通配符匹配0或更多,但我需要1个或更多字符。我该怎么做?

  • 问题内容: 我有几个IP地址,例如: 如果要搜索所有3个ip地址,应该写哪种类型的正则表达式?例如,如果我这样做(我将能够搜索所有3个IP地址) 我现在可以做的事情是这样的:但是它似乎不能很好地工作。 谢谢。 问题答案: 您所拥有的正则表达式已经有几个问题: 首先,它包含点。在正则表达式中,点表示“匹配任何字符”,您只需要匹配实际的点。为此,您需要对其进行转义,因此请在圆点前面加上反斜杠。 其次,

  • 我有3个正则表达式,但当模式匹配时执行相同的操作,所以我考虑将所有三个表达式合并为一个。我尝试了很多,但无法让“|”I.e”或“在我的正则表达式中工作 regex1:<代码>文本。替换(/([\u00A9-\u3299])/g,函数myFunction(x){…} regex2: regex3: 我试过这样做,但它不起作用regex:

  • 它工作得很好,但是当我给出这样的值时,它也返回true..这怎么解决?

  • 问题内容: 我需要一个正则表达式模式,该模式只接受输入字段的逗号分隔值。 例如:。它应该拒绝像这样的值: 我还需要接受分号分隔的值。有人可以为此建议一个正则表达式模式吗? 问题答案: 最简单的形式: 演示在这里。 我只需要限制字母。我怎样才能做到这一点 ? 使用正则表达式(包括示例Unicode字符范围): 演示在这里。 用法示例: Java演示。