考虑一对 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% 准确(即,即使它也匹配其他字符串)。
最佳答案
([0-9.]*)(\/|:)([0-9]*)
这是正则表达式。第一组给你IP。第三组给你端口号。中间组给出分隔符,即/或 : 用于交替。可以忽略。
关于java - 从封闭字符串中提取 IP 地址和端口的简单 Java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29757311/