Замените IP-адрес из URI другим IP-адресом, используя регулярное выражение - PullRequest
4 голосов
/ 25 августа 2011
String uri = "rtps://12.10.10.124/abc/12.10.22.10";

Я пытаюсь заменить любое первое вхождение IP-адреса в этом URI, скажем, «127.0.0.1», используя эффективное регулярное выражение.
Принимая во внимание, что числа с точками могут быть введены в конце URI. Регулярное выражение должно заменить только первое вхождение любого IP-адреса в URI.

Вывод будет:

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

Ответы [ 4 ]

2 голосов
/ 25 августа 2011
String ipRegex = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}";
String uri2 = uri.replaceFirst(ipRegex, "127.0.0.1");

Это, конечно, соответствует любым 4 группам из 1-3 цифр, разделенных 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]?)";

Но я лично считаю, что это излишне.

2 голосов
/ 25 августа 2011

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»

0 голосов
/ 25 августа 2011

В Java вы можете сделать это с классом URL.

URI u = new URI(uri);
u = new URI(u.getScheme(), "127.0.0.1", u.getPath(), u.getFragment());
uri = u.toString();
0 голосов
/ 25 августа 2011
String uri = uri.replaceFirst("\\d+\\.\\d+\\.\\d+\\.\\d+", "127.0.0.1");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...