В этой статье описаны примечания и примеры регулярных выражений PHP. Чтобы поделиться с вами для вашей справки, следующим образом:
В этой статье в основном рассказывается о том, как использовать регулярное выражение в PHP, с несколькими примерами
Эти два дня работы повлияли на регулярные выражения, и я обнаружил, что то, что я забыл, почти то же самое. Я нашел предыдущие учебные заметки, внимательно изучил их и закрепил эти знания. Работа закончена, но предстоит еще многому научиться. Вот предыдущие заметки и некоторые примеры, организованные!
Записи:
1. Введение в регулярные выражения:
Регулярное выражение-это синтаксическое правило, используемое для описания расположения символов и шаблонов сопоставления. Он в основном используется для сегментации шаблонов, сопоставления, поиска и замены строк. 1. Цель: сопоставление, поиск, замена, разделение PHP предоставляет два набора библиотек функций регулярных выражений, совместимых с функциями регулярных выражений (рекомендуется) 2. Расширенная функция регулярных выражений POSIX
Грамматика:
1. Формат выражения: ‘/выражение/[модификатор]’ Пояснение: где “/” представляет разделитель регулярного выражения, но это также могут быть и другие символы, такие как”×”,”! ” Примечание: разделителями не могут быть буквы, цифры и косые черты \. Можно использовать изображение, изображение и, например,/…/…/… и т. Д.|, Где модификатор является необязательным, указывая на дополнительную модификацию выражения.
3. Компоненты регулярного выражения:
1. Атом является основной единицей регулярного выражения. При анализе регулярного выражения его следует рассматривать как единое целое.
Атом включает в себя следующее: Один символ, число, такое как A-Z, A-Z, 0-9. Модовую единицу, такую как ABC, можно понимать как большой атом, состоящий из многих атомов. Атомарная таблица, например [ABC]. Модуль режима для повторного использования, например \ \ 1 Общие escape-символы, такие как: D, D, w Escape-метасимволы, такие как \ *, \ Метасимвол
2. Метасимволы (символы со специальным значением):
Таблица атомов с одним символом, например: [aoeiu] означает любую гласную [0-9] означает любое число [A-Z] [0-9] представляет два символа, состоящих из строчных букв и одной цифры [a-za-z0-9] означает любую большую или маленькую букву или число [^] указывает, что любой символ, отличный от атомов в скобках, является отрицанием [] Пример: [^ 0-9] означает любой нечисловой символ [^ A-Z] означает любую нестрочную букву {m} указывает на контроль количества атомов впереди, указывая m раз Пример: [0-9] {4} означает, что 4-это номер мобильного телефона [1] [3-8] [0-9] {9} “{m,}” означает контролировать количество передних атомов не менее m раз, например: [0-9] {2,} означает две или более цифры “{m, n}” означает контролировать количество атомов спереди, что означает от m до N раз. Например: [A-Z] {6,8} – строчная буква с 6-8 цифрами “*” означает контроль количества передних атомов. Это означает произвольно контролировать количество передних атомов, что эквивалентно {0,} ” “+” означает контролировать количество атомов
3. Общие escape-символы:
| \d | Соответствует номеру; эквивалентно [0-9] |
| \D | Соответствует любому символу, кроме числа; эквивалентно [^ 0-9] |
| \w | Соответствует букве, цифре или подчеркиванию; эквивалентно [0-9a-zA-Z] |
| \W | Соответствует любому символу, кроме букв, цифр и знаков подчеркивания; эквивалентно [^ 0-9a-zA-Z] |
| \s | Соответствует пустому символу; эквивалентно [\ f \ n \ R \ t \ v] |
| \S | Соответствует любому символу, кроме пробела; эквивалентно [^ \ f \ n \ R \ t \ v] |
| \f | Сопоставление ленты страниц эквивалентно \ x0c или \ Cl |
| \n | Соответствует новой строке; эквивалентно \ x0 или \ CJ |
| \r | Сопоставление возврата каретки эквивалентно \ x0d или \ cm |
| \t | Соответствует вкладке; эквивалентно \ X09 \ или \ Cl |
| \v | Соответствует вертикальной вкладке; эквивалентно \ x0B или \ CK |
| \оНН | Сопоставьте восьмеричное число |
| \xNN | Сопоставьте шестнадцатеричное число |
| \cC | Сопоставьте контрольный символ |
4. Модификатор шаблона
I означает без учета регистра; “/[a-zA-Z]/” <==>”/[a-z]/i” S означает, что совпадение рассматривается как одна строка (то есть вы можете ставить точки. Разрыв строки поддерживается) U означает отклонение жадного совпадения
4. Функции регулярных выражений:
Preg grep — возвращает единицу массива, соответствующую шаблону Preg match all — выполняет глобальное соответствие регулярному выражению и возвращает общее количество совпадений. Как и в следующем примере, разница заключается в том, что от совпадения до последнего (глобального совпадения) Совпадение с предыдущим — совпадение с регулярным выражением, только один раз, возвращает 1, в противном случае 0, Формат: совпадение с предыдущим (“регулярное выражение”, “совпадающая строка”, имя переменной результата, заголовок смещения﹐, начальное смещение) Где: preg? Смещение? Захват означает, что для получения позиции совпадающего индекса Начальное смещение: начните сопоставление с указанного местоположения. Предварительная цитата — экранирование символов регулярного выражения. Предварительное разделение — используйте регулярные выражения для разделения строк. Предварительная замена — выполните поиск и замену регулярных выражений
Пример:
1. Соответствие регулярным выражениям
//Regular match function preg_match()
//Fuzzy matching (including form)
//If (preg_match ("/ A /," qwertayuio ") {// whether the matching string contains the a character
//If (preg_match ("/ (ABC) /," qwerta bcayuio ") {// whether the matching string contains ABC string
//If (preg_match ("/ [a B C] /", "qwertbycuiop") {// whether the matching string contains a, B or C characters
//If (preg_match ("/ [0-9] /", "qwertbycuiop")) {// whether the number is included in the matching string
//If (preg_match ("/ [A-Z] /", "12345a6789") {// whether lowercase letters are included in the matching string
//If (preg_match ("/ [0-9] {2} /", "qwe89rqw9re8qwer", $a)) {// whether two digits are included in the matching string
//If (preg_match ("/ [0-9] {2,} /," qwe12rqw9re8qwer ", $a)) {// matches whether the string contains at least two digits
If (preg_match ("/ [0-9] {2,4} /", "qwe12567rqw9re8qwer", $a)) {// whether at least two to four digits are included in the matching string
Echo "match! ";
}else{
Echo "doesn't match! ";
}
echo $a[0];
echo "
";
//Exact match
//if(preg_match("/^[0-9]{2}$/","34")){ //Exact match两位数字
If (preg_match ("/ ^ [1] [35] [0-9] {9} $/", "13520319616") {// matches a mobile phone number
Echo "match! ";
}else{
Echo "doesn't match! ";
}2. Регулярное сопоставление метасимволов
//Regular metacharacter usage
//Check whether it is a legal email address
if(preg_match("/^[\w\.][email protected][\w]+(\.[a-zA-Z]+){1,3}$/","[email protected]")){
Echo "right";
}else{
Echo "wrong";
}
/*
//Check whether it is a hexadecimal integer (positive integer, negative integer, 0)
if(preg_match("/^-?0[xX][\da-fA-F]+$/","-2")){
Echo "right";
}else{
Echo "wrong";
}
//Check whether it is an integer (positive integer, negative integer, 0)
//if(preg_match("/^-?[0-9]+$/","-2")){
if(preg_match("/^-?\d+$/","-2")){
Echo "right";
}else{
Echo "wrong";
}
*/
/*
//Check whether a variable name is correct
//if(preg_match("/^[a-zA-Z_][a-zA-Z0-9_]*$/","1a5b_c")){
if(preg_match("/^[a-zA-Z_][\w]*$/","a5b_c")){
Echo "right";
}else{
Echo "wrong";
}
*/
//Match 4 digits in string
//preg_match("/[0-9]{4}/","qweabi123srqcdwer456iabs7890asfcd",$a);
//preg_match("/\d{4}/","qweabi123srqcdwer456iabs7890asfcd",$a);
//Var_dump ($a [0]); // match: 7890
//preg_match_all("/(ab|cd)/","qweabisrqcdweriabsasfcd",$a);
//Var_dump ($a [0]); // matches all AB or CD strings
//preg_match_all("/is/","qweisrqwerisasfd",$a);
//Var_dump ($a); // matches all is in the string
//preg_match("/.*/","*a\nbc",$a);
//var_dump($a); //*a3. Веб-страница, соответствующая регулярному выражению
//Regular match function: preg match preg match all $str=<<< a href = "index. PHP" rel = "external nofollow" > Home Page < a href = "category. PHP? Id = 3" rel = "external nofollow" > GSM mobile phone < a href = "category. PHP? Id = 4" rel = "external nofollow" > dual mode mobile phone < a href = "category. PHP? Id = 6" rel = "external nofollow" > mobile phone accessories Group purchase Commodity < a href = "activity. PHP" rel = "external nofollow" > offers < a href = "swatch. PHP" rel = "external nofollow" > treasure Trooper < a href = "auction. PHP" rel = "external nofollow" > auction < a href = "exchange. PHP" rel = "external nofollow" > points mall < a href = "message. PHP" rel = "external nofollow" > message board < a href = "http: // BBS. ECSHOP. COM /" rel = "external nofollow" > EC Forum
| {$a[2][$k]} | “; echo “{$a[1][$k]} | “; echo “{$v} | “; echo “
Примечание: используйте <<< Это разделитель PHP
Использовать формат:
<<
При использовании разделителя не требуется добавлять escape – символы к двойным кавычкам. Вы можете обратиться к следующему:
$str="/
4 регулярное использование других функций
//Regular other functions use:
//Preg? Quote -- escape regular expression characters
//Preg_split -- splitting strings with regular expressions
//Preg_replace -- perform regular expression search and replace
//1. Preg_quote -- escape regular expression character
Echo preg_quote ("(ABC) {10}", "'"); // add a backslash before each character of the expression syntax
$s = "a{4}";
preg_match("/".preg_quote($s)."/","werta{4}yu",$a);
var_dump($a);
echo "
";
//2. Preg_split -- use regular expression to split string
$s = "12,34:56;784;35,67:897:65";
$list = preg_split("/[,:;]/",$s);
var_dump($list);
echo "
";
//3. Preg replace performs regular expression search and replacement
$s = "12,34:56;784;35,67:897:65";
//It is required to replace the above:; with spaces
echo preg_replace("/[,;:]/"," ",$s);
$str = "- aaaaa
- bbbbb
- ddddd
- eeeee
"; echo $str; echo "
"; //echo preg_replace("/
5. Дополнительное хранилище (расширение)
//Sub store usage
$date="[2012-08-09],[2012,09-19],[2011/08,09],[2012/10/09],[2013,08,01]";
//Match the legal dates in the above string
preg_match_all("/\[[0-9]{4}([\-,\/])[0-9]{2}\1[0-9]{2}\]/",$date,$a);
var_dump($a);
echo "
";
$str = "- aaaaa
- bbbbb
- ddddd
- eeeee
приложение
Распространенные регулярные выражения
^\D + $\ D-это регулярное выражение для 0-9 $, которое должно заканчиваться на
Регулярные выражения часто используются при создании веб-сайтов. Вот некоторые объяснения и примеры для вашей справки и внесения изменений:
“^ \ D + $”//неотрицательное целое число (положительное целое число + 0) “^ [0-9] * [1-9] [0-9] * $”//положительное целое число “^ ((- \ D +) | (0 +) $”//неположительное целое число (отрицательное целое число + 0) “^ – [0-9] * [1-9] [0-9] * $”//отрицательное целое число “^ -? \ D + $”//целое число “^ \ D + (\. \ D +)? $”//неотрицательное число с плавающей запятой (положительное число с плавающей запятой + 0) “^ (([0-9] + \. [0-9] * [1-9] [0-9] *) | ([0-9] * [1-9] [0-9] * \. [0-9] +) | ([0-9] * [1-9] [0-9] *) $”//положительное число с плавающей запятой “^ ((- \ D + (\. \ D +)) | (0 + (\. 0 +)) $”//неположительное число с плавающей запятой (отрицательное число с плавающей запятой + 0) “^ (- ([0-9] + \. [0-9] * [1-9] [0-9] *) | ([0-9] * [1-9] [0-9] * \. [0-9] +) | ([0-9] * [1-9] [0-9] *)) $”//отрицательное число с плавающей запятой “^ (-? \ D +) (\. \ D +)? $”//число с плавающей запятой “^ [a-za-z] + $”//строка из 26 букв “^ [A-Z] + $”//строка из 26 прописных букв “^ [A-Z] + $”//строка из 26 букв нижнего регистра “^ [a-za-z0-9] + $”//строка чисел
Регулярное выражение, соответствующее китайским символам: [\ u4e00 – \ u9fa5] Соответствует двухбайтовым символам (включая китайские символы): [^ \ X00 – \ XFF] Регулярное выражение, соответствующее пустым строкам: \ n [\ s|] * \ R Регулярные выражения, соответствующие HTML-тегам:/< (. *) >. * < \/\ 1 > | (. *) \/>/Регулярное выражение, соответствующее начальным и конечным пробелам: (^ \ s *) | (\ s * $) Адрес электронной почты, соответствующий регулярному выражению: W + ([- +.] \ W +) * @ \ W + ([-.] \ W +) * \. \ W + ([-.] \ W +)* URL, соответствующий регулярному выражению: ^ [a-za-z] +://://\ \ W + (- \ \ W +) *) (\ \. (\ \ W + (- \ \ W +) *) (\ \? \ \ s *)? $] \ \ W + (- \ \ W +) * (\ \. (- \ \ W +) *) (\ \? \ \ s *)? $ [/url] Является ли соответствующий номер учетной записи законным (начиная с букв, допускается 5-16 байт, допускается буквенно-цифровое подчеркивание): ^ [a-za-z] [a-za-z0 – 9 {4,15}$ Соответствует внутреннему номеру телефона: (\ D {3} – | \ D {4}-)? (\ D {8}| \ D {7})? Совпадение с Tencent QQ Нет.: ^ [1-9] * [1-9] [0-9]*$
Метасимволы и их поведение в контексте регулярных выражений:
\Отметьте следующий символ как специальный символ, или исходный символ, или обратную ссылку, или восьмеричный escape-символ. ^Соответствует началу входной строки. Если свойство многострочности объекта регулярного выражения установлено, ^ также соответствует позиции после “\ n ” или “\ R”. $соответствует концу входной строки. Если свойство многострочности объекта регулярного выражения установлено, $также соответствует позиции перед “\ n ” или “\ R”. *Соответствует предыдущему подвыражению ноль или более раз. +Соответствует предыдущему подвыражению один или несколько раз. +Эквивалентно {1,}. ? соответствует предыдущему подвыражению ноль или один раз. ? эквивалентно {0,1}. {n} n – неотрицательное целое число, которое соответствует определенному n раз. {n,} n-неотрицательное целое число, которое совпадает по крайней мере N раз. {n, m} m и N – неотрицательные целые числа, где n. Совпадают не менее n раз и не более m раз. Между запятыми и двумя числами не может быть пробелов. ? когда символ следует любому другому ограничению (*, +,?, {n}, {n,}, {n, m}), то
Регулярное выражение, соответствующее китайским символам: [\ x {4e00} – \ x {9fa5}] Соответствует двухбайтовым символам (включая китайские символы): [^ X00 XFF] Регулярное выражение, соответствующее пустым строкам: n [s|] * r Регулярные выражения, соответствующие HTML-тегам:/< (. *) >. * | < (. *)/>/Регулярные выражения, соответствующие начальным и конечным пробелам: (^ s *) | (s * $) Адрес электронной почты, соответствующий регулярному выражению: W + ([- +.] W +) * @ w + ([-.] W +) *. W + ([-.] W +)* URL-адрес, соответствующий регулярному выражению веб-адреса:://([w -]+) + [w -] + (/[w] http://([w -] +) + [w -] + (/[w [/url] -./?% & =] *)? Используйте регулярные выражения для ограничения ввода текстового поля в веб-формах: Используйте регулярные выражения для ограничения ввода только на китайском языке: Используйте регулярные выражения для ограничения только полноугольных символов: Используйте регулярные выражения для ограничения ввода только чисел: ‘”onbeforepaste =” clipboarddata. setData (‘текст’,clipboardData.getData(‘текст’).замените(/[^d]/g,”))” Используйте регулярные выражения для ограничения ввода только чисел и
=========Обычная форма в обычном использовании
Регулярное выражение, соответствующее китайским символам: [\ x {4e00} – \ x {9fa5}] Соответствует двухбайтовым символам (включая китайские символы): [^ \ X00 – \ XFF] Регулярное выражение, соответствующее пустым строкам: \ n [\ s|] * \ R Регулярные выражения, соответствующие HTML-тегам:/< (. *) >. * < \/\ 1 > | (. *) \/>/Регулярное выражение, соответствующее начальным и конечным пробелам: (^ \ s *) | (\ s * $) IP-адрес, соответствующий регулярному выражению:/(\ D +) \. (\ D +) \. (\ D +) \. (\ D +)/g//Адрес электронной почты, соответствующий регулярному выражению: W + ([- +.] \ W +) * @ \ W + ([-.] \ W +) * \. \ W + ([-.] \ W +)* Регулярное выражение, соответствующее URL-адресу веб-адреса:://(/[\ W -] + \.) + [\ W -] + (/[\ w] http://(/[\ W -] + \) + [\ W -] + (/[\ w [/url] -./?% & =] *)? Инструкция SQL: ^ (выберите|удалите|удалите|создайте|обновите|вставьте)*$ 1. Неотрицательное целое число: ^ \ D+$ 2. Положительное целое число: ^ [0-9] * [1-9] [0-9]*$ 3. Неположительное целое число: ^ ((- \ D +) | (0 +))$ 4. Отрицательное целое число: ^ – [0-9] * [1-9] [0-9]*$ 5. Целое число: ^ -? \ D+$ 6. Не
PS: вот два очень удобных инструмента регулярных выражений для вашей справки:
Онлайн-тестовый инструмент регулярных выражений JavaScript: http://tools.jb51.net/regex/javascript
Инструмент онлайн-генерации регулярных выражений: http://tools.jb51.net/regex/create_reg
Для получения дополнительной информации о PHP вы можете ознакомиться со следующими разделами: Краткое описание использования регулярных выражений PHP, учебник по безопасности программирования PHP, краткое описание навыков фильтрации безопасности PHP, полное описание навыков работы с массивами PHP, курс введения в базовый синтаксис PHP, краткое описание использования строк PHP и курс введения в работу с базой данных PHP + MySQL
Я надеюсь, что эта статья будет полезна для программирования на PHP.