|
Регулярные выражения
|
|||
---|---|---|---|
#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, 05:25 |
|
Регулярные выражения
|
|||
---|---|---|---|
#18+
символ ^ может иметь 2 значения в зависимости от того, где он используется. Если он используется в символьном классе: Код: plaintext
то он имеет значение все символы кроме перечисленных то есть указанном примере шаблон совпадает с любыми символами кроме маленьких латинских символов. Если этот символ используется вне символьного класса - то он означает начало строки Насчет комбинации \\. - скорее всего просто точка ТОчка в регекспе имеет определенное значение (любой символ) поэтому чтобы указать в регекспе символ "." его нужно слешем проэкранировать. Почему там 2 слеша не знаю, с одним должно работать ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2004, 13:17 |
|
|
start [/forum/topic.php?fid=23&msg=32400159&tid=1480105]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
214ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 249ms |
total: | 570ms |
0 / 0 |