Created
April 9, 2011 10:19
-
-
Save Andrew8xx8/911291 to your computer and use it in GitHub Desktop.
Полезные регулярные выражения
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
* Юзернейм | |
* | |
* Буквы, цифры, дефисы и подчёркивания, от 3 до 16 символов. | |
* Начинаться должно всегда с буквы латинского алффавита | |
*/ | |
preg_match('%^[a-z][a-z0-9_-]{3,16}$%', $userName); | |
/* | |
* Пароль | |
* | |
* То же что и юзер нейм только от 6 символов и может начинаться с цыфры | |
*/ | |
preg_match('%^[a-z0-9_-]{6,18}$%', $password); | |
/* | |
* XML тег | |
* | |
* За открывающей скобкой < должно стоять слово из букв — имя элемента, затем могут быть атрибуты | |
* — любые символы, кроме закрывающей скобки >. Далее — любой текст (содержимое) и закрывающий тэг, | |
* т.е. <имя />, или как минимум один пробел, слэш и закрывающаю скобка (самозакрывающийся тэг). | |
*/ | |
preg_match('%<([a-z]+)([^>]+)*(?:>(.*)</\1>|\s+/>)$%', $xmlTag); | |
/* | |
* | |
* Общий вид — логин@поддомен.домен. Логин, как и поддомен — слова из букв, цифр, подчёркиваний, | |
* дефисов и точек. А домен (имеется в виду 1го уровня) — это от 2 до 6 букв и точек. | |
*/ | |
preg_match('%^([a-z0-9_\.-]+)@([a-z0-9_\.-]+)\.([a-z\.]{2,6})$%', $email); | |
/* | |
* URL | |
* | |
* Первым делом — необязательный протокол (http:// или https://), затем последовательность букв, | |
* цифр, дефисов, подчёркиваний и точек (домены уровня > 1), потом домен нулевого уровня (от 2 до | |
* 6 букв и точек) и, наконец, файловая структура — набор слов из букв, цифр, дефисов, подчёркиваний | |
* и точек со слэшем в конце. Всё это может завершаться опять-таки слэшем. | |
*/ | |
preg_match('%^(https?://)?([\da-z\.-]+)\.([a-z\.]{2,6})([/\w \.-]*)*/?$%', $url); | |
/* | |
* IP адрес | |
* | |
* 4 группы цифр (от 1 до 3 цифр в каждой) разделены точками. Если группа состоит из 3 символов, | |
* то первый из них — 1 или 2; если 1, то остальные от 0 до 9, а если 2 — то второй от 0 до 5; | |
* если второй символ от 0 до 4, то третий — от 0 до 9, а если второй 5 — то третий от 0 до 5. | |
* Если же группа состоит из 2 символов, то первый — от 1 до 9, второй — от 0 до 9. В случае | |
* односимвольной группы этим символом может быть цифра от 1 до 9. | |
*/ | |
preg_match('%^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$%', $ip); | |
/* | |
* Комментаррии CSS | |
* Находим первое вхождение слеш звёздочка, далее берём любой символ или последовательность | |
* слеш звёздочка, пока не встретится последовательность звёздочка слеш. Квантификатор не жадный, по этому | |
* матчит ближайшие открывающие и закгрывающие вхождения оставляя внутри открывающие | |
*/ | |
preg_match_all("%/\*(.|[^/*])*?\*/\s+%i", $cssCode, $comments); | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment