Russian Qt Forum

Qt => Общие вопросы => Тема начата: Flake от Сентябрь 12, 2007, 14:09



Название: Помогите с регуляркой.
Отправлено: Flake от Сентябрь 12, 2007, 14:09
Есть путь C:/dir1/dir2/dir3/dirN/dirEnd
Надо проверять правильность ввода.

Начало я составил, т.е. В начало можно ввести с определенной последовательность по одному символу C:/.
Далее должен повторяться некоторое количество раз блок "dirN/", а в конце просто "dirEnd".

Как такое реализовать? Спасибо.


Название: Re: Помогите с регуляркой.
Отправлено: Icoz от Сентябрь 12, 2007, 14:58
Регулярка - это регулярные выражения, надеюсь. Тогда вот:
Код:
^C:\\(dir\d+\\)+(dirEnd)$
Расшифровываю:
c:\\ - это понятно. Кста, может перед : слеш потребоваться (то есть так: c\:\\)
(dir\d+\\)+ - это "dirN\" где N - число от 0 и до бесконечности! Если надо чтобы было от 1 до 3 знаков пишешь (dir\d{1,3}\\)+
Последний плюс - это что кол-во вложений не менее 1. Если поставишь *, то - 0 и больше, {min,max} - органичение на кол-во.
^ в начале говорит, что c: должно совпать строго в начале строки; $ в конце означает, что должно совпать строго в конце строки

PS. Я тебе слеши привел для винды, если же тебе надо проверять слеши именно так, как ты написал (C:/dir1/dir2/dir3/dirN/dirEnd), то регэксп такой:
Код:
^C:/(dir\d+/)+(dirEnd)$