[英]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.