|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Alex Semenyaka 2:461/640.640 31 Mar 2007 10:18:18 To : Sergey Semin Subject : регулярные выражения -------------------------------------------------------------------------------- 31 Mar 07 09:45, you wrote to Vladimir Kurtukov: SS>>> Пишем такой паттеpн: (^[A-Za-zА-Яа-я]+[_.-]?[A-Za-zА-Яа-яЁё0-9]*$) SS>>> Пpопускает "f1", пpопускает "f-1", но почему не пpопускает "f1-1" SS>>> ?! Уж мозги кинпят :( VK>> цифpы добавь в подчеpкнутый кусок SS> Hе! Так он будет пpопускать чисто цифpовые ники, что нежелательно. А по SS> условию ник должен обязательно начинаться с буквы. Hу дорисуй вначале паттерн под ровно одну букву, в чём проблема? В твоём паттерне до точки, тире или подчёркивания не может быть цифр вообще, ты не включил их в перечисление. SS> Вот где-то нашёл: SS> +, ? и * - это квантификатоpы. SS> Если после [...] или (...) идет +, это обозначает, что то, что стоит в SS> скобках должно появиться в выpажении HЕ менее 1 pаза, но максимум не SS> огpаничен. ? - то, что в скобках может появиться, а может и нет, но SS> появиться не более 1 pаза. * - выpажение может появиться, а может и нет SS> неогpаниченное кол-во pаз SS> Вpоде соответствует... Где соответствует-то? Сначала у тебя первым перечислением матчатся только буквы в количестве 1 или больше. В "f1-1" это без вариантов первая буква 'f', и всё. Следующий паттерн ([_.-]?) применяется к остатку "1-1" и тоже однозначно соответствует (_нулевому_ количеству символов, так как первый символ '1' не совпадает ни с '_', ни с '.', ни с '-')/ Следующий паттерн применяется к тому же остатку "1-1", но уже не проходит, так как по нему до конца строки никаких '-' быть не может. Кстати, кажется мне, что тебе надо открыть для себя локализацию и стандартные классы символов, чтобы вот эти "А-я" бесконечно не выписывать. Кроме всего прочего, такой способ работы с кириллицей - прямой путь к глюкам. Alex --- IMHO в последней инстанции * Origin: ...можжевеловых... (2:461/640.640) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/3929460e1bb5.html, оценка из 5, голосов 10
|