Java regex соответствие IP-адресу и номеру порта как полученные группы

мог нравиться, что кто-либо говорит мне что не так с этим regexp?

((?:(?: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]?))\\:([0-9]{2,5})

для соответствия этому: assfasfas> 192.168.1.1:8080192.168.222.43:8286

Мне нужно 192.168.1.1 и 8080, чтобы быть полученными группами

Спасибо

5
задан lisak 25 May 2010 в 21:41
поделиться

1 ответ

Если вы действительно, действительно не должны выполнять проверку IP-адреса , я предлагаю вам упростить регулярное выражение, потому что этот зверь слишком сложен для сопоставления только «IP часть »и« портовая часть ». Я предлагаю

(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):(\d{1,5})

Группы 1 и 2 будут содержать IP и порт соответственно. И вышеперечисленное уже сложнее, чем должно быть, ИМХО, даже чего-то столь же простого, как это было бы достаточно:

(\d+\.\d+\.\d+\.\d+):(\d+)

Обратите внимание, что двойные обратные косые черты необходимы для строк Java, а не для регулярных выражений, поэтому я оставил их.

13
ответ дан 18 December 2019 в 14:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: