powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Регулярные выражения
2 сообщений из 2, страница 1 из 1
Регулярные выражения
    #32400159
I_Work
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всех приветствую. Недавно прочитал несколько статеек про регулярные выражения. Почти разобрался. Был там такой пример: [^a-zA-Z] . Автор пояснил, что это выражение совпадает с любым символом, не входящим в указанные итервалы (a-z, A-Z). Никак не могу понять, почему это именно так. Если я правильно понял, то выражение ^[a-zA-Z] (равно как и ^[a-Z] ) совпадёт с любым буквенным символом, которым начинается строка. Прошу объяснить мне первое выражение ([^a-zA-Z]).

Видел также пример проверки правильности e-mail
Код: plaintext
^([ 0 -9a-z]([-_.]?[ 0 -9a-z])*@[ 0 -9a-z]([-.]?[ 0 -9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$

Я разобрался, что выражениями ^( и )$ автор говорит, что фраза должна целиком совпасть с выражением внутри скобок. До знака @ мне все понятно (по умолчанию, все буквы нижнего регистра): сначала должна идти хотя бы одна буква или цифра, затем могут идти одиночные символы (- _ .), за которыми обязательно должна быть снова буква или цифра. Т.е. левую часть e-mail проверили. Осталось разобраться в правой части: сначала нужна хотя бы одна буква или цифра, затем могут идити любые буквы, цифри и знаки (- и .), но если идет (- или .), то за нимим обязательно должна идти буква или цифра. Не могу понять кусочек \\. . После этого должны идти две буквы из соответствующих наборов и, может быть, ещё один кусочек из последнего набора.

Если я в чём-то не прав, поправьте, пожалуйста. Также прошу объяснить мне смысл кусочка \\.

И скажите, разве e-mail млжет начинаться цифрой или имя состоять только из циферок?
И ещё: разве в имени димена не могут присутствовать символы подчёркивания?
...
Рейтинг: 0 / 0
Регулярные выражения
    #32400747
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
символ ^ может иметь 2 значения в зависимости от того, где он используется.
Если он используется в символьном классе:
Код: plaintext
[^a-z]

то он имеет значение все символы кроме перечисленных
то есть указанном примере шаблон совпадает с любыми символами кроме маленьких латинских символов.
Если этот символ используется вне символьного класса - то он означает начало строки

Насчет комбинации \\. - скорее всего просто точка
ТОчка в регекспе имеет определенное значение (любой символ) поэтому чтобы указать в регекспе символ "." его нужно слешем проэкранировать.
Почему там 2 слеша не знаю, с одним должно работать
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Регулярные выражения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]