URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9181
[ Назад ]

Исходное сообщение
"regexp & qt"

Отправлено pilot.net , 05-Июл-11 08:07 
Пытаюсь разобраться с regexp
строки типа "~Core_Data[2]" "~Core_Define" "~Parameters"
нужно получить первое слово до разделителя "_" потом  Второе слово и индекс те
Core
Data
2

QRegExp rx( "~([a-zA-z]+)_([a-zA-z]+)\\[(\\d+)\\]" );
list = rx.capturedTexts();

подходит к ~Core_Data[2]
но когда нет _Data[2] или [2] то не находит ничего


Содержание

Сообщения в этом обсуждении
"regexp & qt"
Отправлено XAnder , 05-Июл-11 09:13 
> но когда нет _Data[2] или [2] то не находит ничего

И правильно делает, разберём это выражение:

~ сначала должна идти тильда
([a-zA-z]+) затем одна или больше букв
_ затем подчёркивание
([a-zA-z]+) затем снова одна или больше букв
\[ затем открывающая квадратная скобка
(\d+) затем одна или больше цифр
\] затем закрывающая квадратная скобка

Заметьте, что все эти части у вас обязательны. Если нет хотя бы одной, ничего не будет найдено.

Кстати, вашему выражению соответствует, например, такая строка: "!@#$abc_de[^&*q_q[00]]]]:-)"