Russian Qt Forum
Ноябрь 24, 2024, 03:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите с регуляркой.  (Прочитано 2175 раз)
Flake
Гость
« : Сентябрь 12, 2007, 14:09 »

Есть путь C:/dir1/dir2/dir3/dirN/dirEnd
Надо проверять правильность ввода.

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

Как такое реализовать? Спасибо.
Записан
Icoz
Гость
« Ответ #1 : Сентябрь 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)$
« Последнее редактирование: Сентябрь 12, 2007, 15:02 от Icoz » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.044 секунд. Запросов: 20.