@SoEltic

Как найти ip адреса в произвольном тексте при помощи QRegExp?

Имеется некая html страничка со списком ip адресов.
Пытаюсь выдрать из неё эти самые адреса при помощи Qt, а точнее QRegExp.
Погуглил на тему, но никак не могу получить нужный ответ от QRegExp.
Выражение такого вида:
(?:(?: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]{1,3}[\\.]){3}[0-9]{1,3}выдаёт лишь части адреса, а точнее
201.
265.
31.
17.
и так далее.

Каким образом составить выражение, чтобы правильно выдрать ip адреса?
  • Вопрос задан
  • 2898 просмотров
Пригласить эксперта
Ответы на вопрос 1
QRegExp rx("(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})");

QString text("192.168.1.1 blah-blah 192.168.1.2 blah-blah");
int pos = 0;
QStringList list;
 
while ((pos = rx.indexIn(text, pos)) != -1) 
{
	list << rx.cap(1);
	pos += rx.matchedLength();
}

Результат:
192.168.1.1
192.168.1.2

Вариант с проверкой диапазона 0-255:
QRegExp rx("(((?: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]?))");
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы