java - 从封闭字符串中提取 IP 地址和端口的简单 Java 正则表达式

标签 java regex port extract ip-address

考虑一对 IPv4IPv6 地址和端口,由 /: 分隔,例如

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/

相关文章:

java - 如何将 unicode 符号映射到 Java 中等效的更简单的拉丁脚本

java - Spring - 通过代理引导所有出站流量

node.js - Docker - Node.js + MongoDB - "Error: failed to connect to [localhost:27017]"

c++ - 在 C++ 中检查打开的 UDP 端口

java - Spring/Hibernate/HSQLDB 组合的 session /事务问题

java - 如何从异步 Play 操作返回结果

Python 表情符号搜索和替换未按预期工作

regex - Perl 正则表达式和捕获组

c++ - 正则表达式搜索匹配不使用组

Python psutil 查找可用端口