【发布时间】:2013-04-30 09:43:26
【问题描述】:
我想使用正则表达式验证带有或不带有端口号的 IP 地址。我的输入字符串是IP:PORT 或只是IP。我只想要一个 regex 来验证 IP:PORT 或 IP 两者。
我的 IP 地址正则表达式是:
^(?:(?:1\d?\d|[1-9]?\d|2[0-4]\d|25[0-5])\.){3}(?:1\d?\d|[1-9]?\d|2[0-4]\d|25[0-5])$
谁能告诉我如何向这个现有的正则表达式添加可选端口号?
【问题讨论】:
-
假设你的 IP 正则表达式是好的:
^(?:(?:1\d?\d|[1-9]?\d|2[0-4]\d|25[0-5])\.){3}(?:1\d?\d|[1-9]?\d|2[0-4]\d|25[0-5])(?:[:]\d{2,5})?$ -
两件事:有代码时使用 (`) 符号,而不是换行。其次,在这种情况下,最好的解决方案是根本不使用正则表达式。
-
... 或使用正则表达式进行解析,以及另一种机制来验证 IP 组件值。 Google 为 IP 搜索好的正则表达式:answers.oreilly.com/topic/…
标签: java regex validation ip-address port-number