Russian Qt Forum

Qt => Общие вопросы => Тема начата: daimon от Ноябрь 13, 2009, 02:13



Название: [решено] QRegExp вопрос
Отправлено: daimon от Ноябрь 13, 2009, 02:13
Как написать строку условия, чтобы устанавливало для валидатора порядок набора: символы (всегда первый символ) далее возможны нижние подчёркивания (могут и небыть, а может и бесконечное количество), потом цифры?
Спасибо.
И вкратце объясните синтаксис для этого класса
И как задать нижнее подчёркивание?

Понял сам QRegExp regExp("^[a-zA-Z]{1,}_{1,}[0-9]{1,}");


QRegExp regExp("^[a-zA-Z]{1,}_*[a_Az-Z]*[0-9]*") или    QRegExp regExp("^[a-zA-Z]{1,}[a-Az-Z]*[0-9]*");- последний вариант;


Название: Re: QRegExp вопрос
Отправлено: Alex Custov от Ноябрь 13, 2009, 02:45
Код
C++ (Qt)
QRegExp("[a-zA-Z]{1,}_*[0-9]*")

синтаксис неплохо расписан в доке по QRegExp, за детальным изучением надо обращаться к специализированнй литературе, например Mastering Regular Expressions


Название: Re: [решено] QRegExp вопрос
Отправлено: Alex Custov от Ноябрь 13, 2009, 02:49
Понял сам QRegExp regExp("^[a-zA-Z]{1,}_{1,}[0-9]{1,}");

regexp "_{1,}" не удовлетворяет условию "нижние подчёркивания (могут и небыть, а может и бесконечное количество)", правильно - "_*"


Название: Re: QRegExp вопрос
Отправлено: daimon от Ноябрь 13, 2009, 14:27
Код
C++ (Qt)
QRegExp("[a-zA-Z]{1,}_*[0-9]*")

синтаксис неплохо расписан в доке по QRegExp, за детальным изучением надо обращаться к специализированнй литературе, например Mastering Regular Expressions

а для такого варианта неработает d__d111 . Мне нужно чтобы нижнее подчёркивание было (может и не быть) после первого символа и везде до цифр, ddd_ddd_ddd____111  или  d111     непраильно для _d11


Название: Re: QRegExp вопрос
Отправлено: Alex Custov от Ноябрь 13, 2009, 15:01
а для такого варианта неработает d__d111. Мне нужно чтобы нижнее подчёркивание было (может и не быть) после первого символа и везде до цифр, ddd_ddd_ddd____111  или  d111     непраильно для _d11

Это уже значительно отличается от того, что ты написал в первом посте.