繁体   English   中英

使用regex将URI替换为另一个IP地址

[英]Replace IP address from URI with another IP address using regex

String uri = "rtps://12.10.10.124/abc/12.10.22.10";

我试图用这个uri替换任何第一次出现的IP地址,假设“127.0.0.1”使用有效的正则表达式。
考虑到最后可以在uri中引入带点的数字。 正则表达式只需替换URI中第一次出现的任何IP地址。

输出将是:

uri = "rtps://127.0.0.1/abc/12.10.22.10";

s/[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}/127\\.0\\.0\\.1/

将字符串中第一次出现的ip地址转换为“127.0.0.1”

String ipRegex = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}";
String uri2 = uri.replaceFirst(ipRegex, "127.0.0.1");

这当然匹配由3个点分隔的任意4组1-3位数字(例如:999.999.999.999将匹配),如果你想要只匹配合法IP地址的东西,你可以去:

String ipRegex = "((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)";

但我个人认为这太过分了。

String uri = uri.replaceFirst("\\d+\\.\\d+\\.\\d+\\.\\d+", "127.0.0.1");

在Java中,您可以使用URL类来完成。

URI u = new URI(uri);
u = new URI(u.getScheme(), "127.0.0.1", u.getPath(), u.getFragment());
uri = u.toString();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM