Голосование
Какую CMS Вы предпочитаете
AtomX
Fapos CMS
Drunya CMS
Топ новостей
- Генератор аватарок в стиле пиксель-арт
- Скачать Fapos CMS 1.1.8 Бесплатно
- Цунами в Японии. Последствия.
- Предварительная инфа о FAPOS 1.1.9. Часть 2
- Описание версии CMS Fapos 0.9.9
- Новая версия Fapos 1.3
- Половина россиян не смогла отличить легальный контент
- Что есть Fapos CMS
- Убийца Apache у вас на пороге
- Открытое тестирование Fapos 0.9.9
Последние комментарии
Топ пользователей
Сайты на AtomX CMS
По чему именно в PHP, ведь регулярные выражения везде одинаковы? По тому, что я буду приводить конкретные примеры PHP функций и говорить обих особенностях. Конкретно будем рассматривать функцию preg_match(). Она может принимать на вход 2 обязательных параметра и один дополнительный. Первый параметр - это сама регулярка, второй - это строка, в которой осуществляется поиск, а третий необязательный параметр служит для записи в него найденых совпадений.
Регулярное выражение - это строка, в определенном формате, которая служит для поиска нужных шаблонов в тексте. А так как это строка,она должнабыть заключена в кавычки. Но это не все, формат регулярных выражений так же предусматривает заключение самого выражения в парные символы.
Пример
Как видно в примере, я использовал решетку, но это может быть и любой другой символ, не являющийся буквенно-циферным. Но я бы посоветовал всегда использовать решетку и не думать обэтом
Регулярные выражения могут состоять из управляющих символов, квантификаторов, модификаторов и обычных символов. С обычными символами, я думаю и так понятно - это символы,которые не несут дополнительной смысловой нагрузки в теле регулярного выражения, то есть, означают сами себя. Управляющие символы - это те которые несут смысловую нагрузку, позже я расскажу о них более подробно. Квантификаторы - это символы, которые задают жадность. О жадности поговорим позже. Модификаторы - это символы, которые указываются вне регулярного выражения и регулируют определенные правила поиска, о них тоже позже.
УПРАВЛЯЮЩИЕ СИМВОЛЫ
[ и ] - используются для описания возможных символов. Другими словами, все символы, что внутри квадратных скобок, трактуются как допустимые.
{ и } - используются для указания количества.
( и ) - позволяет извлекать определенные участки текста. При использовании третьего параметра preg_match(), участки выделеные скобками, заносятся в переменную, которая и является третим параметром.
. - любой символ
\w - любой символ из которого может состоять слово(буквы, цифры и пробелы)
\W - противоположность \w
\d - любая цифра
\D - противоположность \d
| - логическое или
\ - экранирует спец-символы
$ - символ конца строки
^ - символ начала строки
КВАНТИФИКАТОРЫ
Что бы понять что такое квантификаторы, надо понять, что такое жадность. Покажу на примере.
Как думаете, сколько букв "а" попадет в переменную? Вот это изависит от жадности. В данном случае, все буквы попадут в переменную, так как по-умолчанию, все регулярки "жадные" и "кушают" максимально возможный объем. Теперь о том какие они вообще есть, эти квантификаторы:
* - ноль и более
+ - один и более
? - ноль или один
Пример
МОДИФИКАТОРЫ
Выше я уже говорил, что это такое, но повторюсь - это то что используеться за прделами самого шаблона(за решеткой).
Думаю с этим все понятно. Теперь я покажу какие они есть и для чего их использовать.
i - регистронезависимый поиск
m - если использовать этот модификатор, символы начала и конца строки совпадают с местами перевода строк и после перевода. Другими словами, не фактического конца текста, а конца и начала отдельных строк.
U - инвертирует жадность квантификаторов
u - сообщает о том что надо всти сравнение с учетом кодировки UTF-8
s - использование этого модификатора приводит к тому, что точка считается любым символом, в том числе, символом перевода строки. Если этот модификатор не использовать, точка считается любым символом, кроме перевода строки.
КОЕ КАКИЕ ПРИМЕРЫ
Считается действительной, если в тексте есть один или более символов a, d или s, между началом и концом строки. Другими словами, вся строка должна состоять только из этих символов или их комбинации.
считается действительным, если в тексте в любом месте есть один или более символов, перечисленных в квадратных скобках
считается действительным, если в тексте в любом месте есть последовательность "ads"
Вот такой вот краткий курс для чайников в регулярных выражениях. Если что-то не понятно, спрашивайте на форуме, я с радостью, подскажу
Регулярное выражение - это строка, в определенном формате, которая служит для поиска нужных шаблонов в тексте. А так как это строка,она должнабыть заключена в кавычки. Но это не все, формат регулярных выражений так же предусматривает заключение самого выражения в парные символы.
Пример
Code:
'#регулярка#'
Как видно в примере, я использовал решетку, но это может быть и любой другой символ, не являющийся буквенно-циферным. Но я бы посоветовал всегда использовать решетку и не думать обэтом
Регулярные выражения могут состоять из управляющих символов, квантификаторов, модификаторов и обычных символов. С обычными символами, я думаю и так понятно - это символы,которые не несут дополнительной смысловой нагрузки в теле регулярного выражения, то есть, означают сами себя. Управляющие символы - это те которые несут смысловую нагрузку, позже я расскажу о них более подробно. Квантификаторы - это символы, которые задают жадность. О жадности поговорим позже. Модификаторы - это символы, которые указываются вне регулярного выражения и регулируют определенные правила поиска, о них тоже позже.
УПРАВЛЯЮЩИЕ СИМВОЛЫ
[ и ] - используются для описания возможных символов. Другими словами, все символы, что внутри квадратных скобок, трактуются как допустимые.
{ и } - используются для указания количества.
( и ) - позволяет извлекать определенные участки текста. При использовании третьего параметра preg_match(), участки выделеные скобками, заносятся в переменную, которая и является третим параметром.
. - любой символ
\w - любой символ из которого может состоять слово(буквы, цифры и пробелы)
\W - противоположность \w
\d - любая цифра
\D - противоположность \d
| - логическое или
\ - экранирует спец-символы
$ - символ конца строки
^ - символ начала строки
КВАНТИФИКАТОРЫ
Что бы понять что такое квантификаторы, надо понять, что такое жадность. Покажу на примере.
1
2
3
<?php $str = 'aaaaaaaaaaa';
preg_match('#(a*)#', $str, $match);
print_r($match);?>
Как думаете, сколько букв "а" попадет в переменную? Вот это изависит от жадности. В данном случае, все буквы попадут в переменную, так как по-умолчанию, все регулярки "жадные" и "кушают" максимально возможный объем. Теперь о том какие они вообще есть, эти квантификаторы:
* - ноль и более
+ - один и более
? - ноль или один
Пример
1
2
<?php //означает ноль и более любых символов
preg_match('#.*#', $str);?>
МОДИФИКАТОРЫ
Выше я уже говорил, что это такое, но повторюсь - это то что используеться за прделами самого шаблона(за решеткой).
1
2
<?php preg_match('##модификаторы', $str);?>
i - регистронезависимый поиск
m - если использовать этот модификатор, символы начала и конца строки совпадают с местами перевода строк и после перевода. Другими словами, не фактического конца текста, а конца и начала отдельных строк.
U - инвертирует жадность квантификаторов
u - сообщает о том что надо всти сравнение с учетом кодировки UTF-8
s - использование этого модификатора приводит к тому, что точка считается любым символом, в том числе, символом перевода строки. Если этот модификатор не использовать, точка считается любым символом, кроме перевода строки.
КОЕ КАКИЕ ПРИМЕРЫ
Считается действительной, если в тексте есть один или более символов a, d или s, между началом и концом строки. Другими словами, вся строка должна состоять только из этих символов или их комбинации.
1
2
<?php preg_match('#^[ads]+$#', $str);?>
считается действительным, если в тексте в любом месте есть один или более символов, перечисленных в квадратных скобках
1
2
<?php preg_match('#[ads]+#', $str);?>
считается действительным, если в тексте в любом месте есть последовательность "ads"
1
2
<?php preg_match('#ads#', $str);?>
Вот такой вот краткий курс для чайников в регулярных выражениях. Если что-то не понятно, спрашивайте на форуме, я с радостью, подскажу
Основы регулярных выражений в PHP
Теги: preg_match; php; htmk; парсинг текста; регулярные выражения;
Источник: Drunya
Теги: preg_match; php; htmk; парсинг текста; регулярные выражения;
Источник: Drunya
Сейчас online: 17. Зарегистрированных: 0. Гостей: 17.
AtomX 2.8 Beta - Новая версия бесплатной CMS
AtomX 2.8 Beta - Новая версия бесплатной CMS
Программирование - что может быть проще.
Программирование - что может быть проще.
AtomX 2.8 Beta - Новая версия бесплатной CMS
AtomX 2.8 Beta - Новая версия бесплатной CMS
Написание простого вируса в блокноте
Что такое API и для чего они нужны
Классы в PHP для чайников
Написание простого вируса в блокноте