Рубрики
Uncategorized

Примечания и примеры регулярных выражений PHP

Автор оригинала: David Wong.

В этой статье описаны примечания и примеры регулярных выражений 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); //*a

3. Веб-страница, соответствующая регулярному выражению

//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
 
yfstr; echo ““; Echo “< tr > < th > name < / th > < th > URL address < / th > < th > link < / th > < tr >”; //Use regular matching preg_match_all(“/(.*?)<\/a>/s”,$str,$a); foreach($a[0] as $k=>$v){ echo ““; echo ““; echo ““; echo ““; echo ““; } echo “
{$a[2][$k]}{$a[1][$k]}{$v}
“;

Примечание: используйте <<< Это разделитель 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
"; //Add a B tag to all Li tags in the string above. echo "
"; echo $str; echo "
"; //echo preg_replace("/
  • (.*?)<\/li>/","
  • \1
  • ",$str); //echo preg_replace("/
  • (.*?)<\/li>/","
  • \
  • ",$str); echo preg_replace("/
  • (.*?)<\/li>/",'
  • $1
  • ',$str);

    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
    "; //Remove the HTML tag from the above string (replace empty) echo preg_replace("/<\/?.*?\/?>/s","",$str);

    приложение

    Распространенные регулярные выражения

    ^\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.