Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
06.02.2004, 05:25
|
|||
---|---|---|---|
Регулярные выражения |
|||
#18+
Всех приветствую. Недавно прочитал несколько статеек про регулярные выражения. Почти разобрался. Был там такой пример: [^a-zA-Z] . Автор пояснил, что это выражение совпадает с любым символом, не входящим в указанные итервалы (a-z, A-Z). Никак не могу понять, почему это именно так. Если я правильно понял, то выражение ^[a-zA-Z] (равно как и ^[a-Z] ) совпадёт с любым буквенным символом, которым начинается строка. Прошу объяснить мне первое выражение ([^a-zA-Z]). Видел также пример проверки правильности e-mail Код: plaintext
Я разобрался, что выражениями ^( и )$ автор говорит, что фраза должна целиком совпасть с выражением внутри скобок. До знака @ мне все понятно (по умолчанию, все буквы нижнего регистра): сначала должна идти хотя бы одна буква или цифра, затем могут идти одиночные символы (- _ .), за которыми обязательно должна быть снова буква или цифра. Т.е. левую часть e-mail проверили. Осталось разобраться в правой части: сначала нужна хотя бы одна буква или цифра, затем могут идити любые буквы, цифри и знаки (- и .), но если идет (- или .), то за нимим обязательно должна идти буква или цифра. Не могу понять кусочек \\. . После этого должны идти две буквы из соответствующих наборов и, может быть, ещё один кусочек из последнего набора. Если я в чём-то не прав, поправьте, пожалуйста. Также прошу объяснить мне смысл кусочка \\. И скажите, разве e-mail млжет начинаться цифрой или имя состоять только из циферок? И ещё: разве в имени димена не могут присутствовать символы подчёркивания? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.02.2004, 13:17
|
|||
---|---|---|---|
Регулярные выражения |
|||
#18+
символ ^ может иметь 2 значения в зависимости от того, где он используется. Если он используется в символьном классе: Код: plaintext
то он имеет значение все символы кроме перечисленных то есть указанном примере шаблон совпадает с любыми символами кроме маленьких латинских символов. Если этот символ используется вне символьного класса - то он означает начало строки Насчет комбинации \\. - скорее всего просто точка ТОчка в регекспе имеет определенное значение (любой символ) поэтому чтобы указать в регекспе символ "." его нужно слешем проэкранировать. Почему там 2 слеша не знаю, с одним должно работать ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=23&tablet=1&tid=1480105]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
166ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 270ms |
0 / 0 |