【发布时间】:2015-06-27 17:38:14
【问题描述】:
考虑一对IPv4 或IPv6 地址和端口,以/ 或: 分隔,例如
10.10.10.10:1234
端口是可选的,所以字符串像
10.10.10.10/
10.10.10.10:
10.10.10.10
也是有效的。地址/端口对可能后跟空格或逗号字符,它是更长的封闭字符串的一部分。
什么是一个非常简单的正则表达式来从封闭字符串中提取单独字段中的 2 个值(不使用字符串操作函数)?
例如,像这样的表达式
(?<address>[^\s,]+[^\s,:\.])((/|:)(?<port>\d*))?
在同一个字符串中提取地址和端口。
这里的目标是使用最简单的正则表达式实现提取,即使它不是 100% 准确(即,即使它也匹配其他字符串)。
【问题讨论】:
-
如果简单又长没问题的话,勾选这个(无端口但可以追加)stackoverflow.com/questions/23483855/…
-
为什么是正则表达式?常规的
String方法在这里更好 -
我见过很多这样的正则表达式,但正在寻找一个简单的。 :-)
标签: java regex port extract ip-address