Освоение Регулярные выражения в PHP

Что такое регулярные выражения?
Регулярное выражение шаблон, который может сравниться различных текстовых строк. Использование регулярных выражений, которые вы можете найти (и заменить) некоторые модели текста, например, "все слова, которые начинаются с буквы" А "или" найти только телефонные номера ". Регулярные выражения часто используются для проверки классов, потому что они действительно мощный инструмент для проверки адресов электронной почты, номера телефонов, адреса, почтовые индексы, и многое другое.


В этом уроке я покажу вам, как регулярные выражения, работа в PHP, и дать вам небольшой экскурс в написании собственных регулярных выражений. Я дам вам несколько например регулярных выражений, которые часто используются.
Регулярные выражения в PHP
Использование регулярных выражений (регулярные выражения) очень проста в PHP, и Есть несколько функций, которые существуют, чтобы делать регулярные выражения поиска и замены. Давайте начнем с простого поиска регулярных выражений.

Обратите внимание на документацию preg_match функции. Как вы можете видеть из документации, preg_match используется для выполнения регулярных выражений. В этом случае не заменяя это делать, только найти простой. Скопируйте код ниже, чтобы дать ему попробовать.
<? PHP

/ / Пример строки
$ Ул u003d "Давайте найдем вещи <bla> между </ бла> эти две предыдущие скобки";

/ / Давайте выполнять регулярное
$ Делать u003d preg_match ("/ <bla> (.*)</ бла> /", $, ул $ матчей);

/ / Проверяем, если регулярное выражение успешно
если ($ делать u003d TRUE) (
/ / Согласованные что-то, показать соответствие строку
эхо htmlentities ($ матчей ['0 ']);

/ / Кроме того, как текст между тегами
эхо '<br />'. $ Матчей ['1 '];
) (Другое
/ / Нет матча
Эхо "не удалось найти соответствия";
)

?> После того, как запустить код, вероятно, это хорошая идея, если я быстренько через код. В принципе, весь сердечник выше код строка, которая содержит preg_match. Первым аргументом является регулярное выражение вашего шаблона. Вероятно, это самое главное. Позднее в этом руководстве, я объясню основные регулярные выражения, но если вы действительно хотите узнать, регулярное выражение, то это лучше всего, если вы посмотрите на Google за конкретные примеры регулярных выражений.

Второй аргумент заключается в строки. Я полагаю, что не нуждается в объяснении. Наконец, третий аргумент может быть не обязательно, но если вы хотите получить соответствующий текст, или текст между чем-то, это хорошая идея, чтобы использовать его (как и я использовал его в пример).
Preg_match функции останавливается после того, как нашли первый матч. Если вы хотите найти все матчи в строку, вы должны использовать preg_match_all функции. Это работает почти то же самое, так что нет необходимости отдельно объяснить.

Теперь, когда мы были вывод, давайте поиска и замены, с preg_replace функции. Preg_replace функция работает очень похожи на функции preg_match, а вместо этого есть еще один аргумент в пользу замены строки. Скопируйте код ниже, и запустите его.
<? PHP

/ / Пример строки
$ Ул u003d "Давайте заменить <bla> вещи между </ бла> бла скобки";

/ / Делаем беременности заменить
$ Результат u003d preg_replace ("/ <bla> (.*)</> бла /", "<bla> новый <вещи / бла>", ул $);

эхо htmlentities ($ результат);
?> Результат будет затем ту же строку, за исключением того, теперь говорят "новые вещи" между бла метки. Это, конечно, простой пример, и более продвинутые замены может быть сделано.

Вы также можете использовать ключи в строке замены. Допустим, вы все еще хотите текст в скобках, и просто добавить что-нибудь? Вы можете использовать $ 1, $ 2 и т.д. ключи для них. Например:
<? PHP

/ / Пример строки
$ Ул u003d "Давайте заменить <bla> вещи между </ бла> бла скобки";

/ / Делаем беременности заменить
$ Результат u003d preg_replace ("/ <bla> (.*)</> бла /", "<bla> новые вещи (старые: $ 1) </ бла>", ул $);

эхо htmlentities ($ результат);
?> Это будет тогда печать "Давайте заменить новым материалом (старая: вещи между ними) бла скобки". $ 2 для второго "универсальные", $ 3 за третье и т.д.

Вот и все для регулярных выражений. Кажется, очень трудно, но как только вы поймете это очень простой, но один из самых мощных инструментов при программировании на РНР. Я не могу подсчитать, сколько раз регулярное спасла меня от нескольких часов кодирования трудно текстовые функции.

Пример
Что бы хороший учебник быть без какого-либо реальные примеры? Давайте сначала посмотрим на простой электронной почты проверки функции. Адрес электронной почты должен начинаться с буквы или цифры, то есть @, то домена, заканчивая расширением. Регулярное выражение для этого что-то вроде этого: ^ [A-Za-z0-9_ .-]+@[-Za-z0-9-] +. [A-Za-Z0-9-.] + $

Позвольте мне кратко объяснить, что регулярное выражение. В принципе, первая часть говорит о том, что все должны быть буквы или цифры. Тогда мы получим @, а после этого не должно быть букв и / или номера снова (домена). Наконец мы проверяем период, а затем для его продления. Код, чтобы использовать эту регулярное выражение выглядит следующим образом:
<? PHP

/ / Хорошее электронной почты
$ Хороший u003d "john@example.com";

/ / Bad по электронной почте
$ u003d Плохой "Blabla @ Blabla";

/ / Давайте проверим хорошей электронной почты
если (preg_match ("/^[-Za-z0-9_ .-]+@[-Za-z0-9-] +. [A-Za-Z0-9-.]+$/", $ хороший )) (
Эхо "Действующий адрес электронной почты";
) (Другое
Эхо "Неверный адрес электронной почты";
)

эхо '<br />';

/ / И проверить плохое по электронной почте
если (preg_match ("/^[-Za-z0-9_ .-]+@[-Za-z0-9-] +. [A-Za-Z0-9-.]+$/", $ плохие )) (
Эхо "Действующий адрес электронной почты";
) (Другое
Эхо "Неверный адрес электронной почты";
)

?> В результате этого будет "адрес электронной почты. Неверный E-почта", конечно. Мы только что проверили, если адрес электронной почты является действительным. Если упаковка выше код в функции, вы сами по электронной почте проверки функции. Имейте в виду, однако, что регулярное выражение не является совершенным: в конце концов, это не проверить ли это расширение слишком долго, не так ли? Потому что я хочу сохранить этот учебник Короче говоря, я не буду давать полноценное регулярное выражение, но вы можете легко найти через Google.

Другой пример
Другой хороший пример будет номер телефона. Допустим, вы хотите проверить телефонные номера и убедиться, что они были в правильном формате. Предположим, что вы хотите номера, которые будут в формате ХХХ-ХХХХХХХ. Код будет выглядеть примерно так:
<? PHP

/ / Хороший номер
$ Хороший u003d "123-4567890";

/ / Bad номер
$ u003d Плохой "45-3423423";

/ / Давайте проверим большое число
если (preg_match ("/ D (3)-д (7) /", $ хороший)) (
Эхо "числом";
) (Другое
Эхо "Неверное число";
)

эхо '<br />';

/ / И проверить неверный номер
если (preg_match ("/ D (3)-д (7) /", $ плохие)) (
Эхо "числом";
) (Другое
Эхо "Неверное число";
)

?> Регулярное выражение является достаточно простым, потому что мы используем D. В основном это означает "соответствовать любой цифры" с длиной за ним. В данном примере это в первую очередь ищет 3 цифры, а затем '-' (дефис) и, наконец, 7 цифр. Отлично работает, и делает именно то, чего мы хотим.

Что именно можно с помощью регулярных выражений?
Регулярные выражения в действительности один из самых мощных инструментов в PHP, или любой другой язык в этом отношении (вы можете использовать его в mod_rewrite правила, как хорошо!). Существует так много можно делать с помощью регулярных выражений, а мы лишь скользнули по поверхности в данном учебнике с некоторыми очень основные примеры.

Если вы действительно хотите, чтобы копаться в регулярных выражениях я предлагаю вам поиск в Google для более учебники, и попытаться узнать регулярное синтаксис. Это не просто, и довольно крутой кривой обучения (на мой взгляд), но лучший способ узнать должен пройти через множество примеров, и попытаться перевести их в простом английском языке. Это действительно помогает вам узнать синтаксис.

В будущем я планирую посвятить Полный текст статьи строго примеров, включая наиболее перспективные, без каких-либо объяснений. Но теперь, я могу только дать вам ссылки на другие учебные пособия:
30 минута Regex Учебник
Регуляр-Expressions.info


15 Марта 2010, 17:03
Отзывы
Написать комментарий
capcha
Написать
Автозапчасти MITSUBISHI GALANT Митсубиси (митсубиши), купить запасные части MITSUBISHI GALANT Митсубиси (митсубиши), продажа автозапчастей на MITSUBISHI GALANT Митсубиси (митсубиши)