Пытаюсь разобраться с regexp
строки типа "~Core_Data[2]" "~Core_Define" "~Parameters"
нужно получить первое слово до разделителя "_" потом Второе слово и индекс те
Core
Data
2QRegExp rx( "~([a-zA-z]+)_([a-zA-z]+)\\[(\\d+)\\]" );
list = rx.capturedTexts();подходит к ~Core_Data[2]
но когда нет _Data[2] или [2] то не находит ничего
> но когда нет _Data[2] или [2] то не находит ничегоИ правильно делает, разберём это выражение:
~ сначала должна идти тильда
([a-zA-z]+) затем одна или больше букв
_ затем подчёркивание
([a-zA-z]+) затем снова одна или больше букв
\[ затем открывающая квадратная скобка
(\d+) затем одна или больше цифр
\] затем закрывающая квадратная скобкаЗаметьте, что все эти части у вас обязательны. Если нет хотя бы одной, ничего не будет найдено.
Кстати, вашему выражению соответствует, например, такая строка: "!@#$abc_de[^&*q_q[00]]]]:-)"