Что такое регулярные выражения?
Регулярное выражение шаблон, который может сравниться различных текстовых строк. Использование регулярных выражений, которые вы можете найти (и заменить) некоторые модели текста, например, "все слова, которые начинаются с буквы" А "или" найти только телефонные номера ". Регулярные выражения часто используются для проверки классов, потому что они действительно мощный инструмент для проверки адресов электронной почты, номера телефонов, адреса, почтовые индексы, и многое другое.
В этом уроке я покажу вам, как регулярные выражения, работа в 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
Освоение Регулярные выражения в PHP
- Захватывающие Цвет сила! 15.03.2010 Цветы передать характер, эмоции и намерения. Вы, какие цвета вы выберете. Таким образом, ваш выбор цвета должен отражать сообщение или ощущение, что вы в надежде донести до зрителя.
- База данных сайта Driven 09.04.2010 Решение заключается в создании из баз данных веб-сайта, с помощью которых веб-страницы создаются динамически что еще дает веб-сайт посетитель последнюю зрения от информации, хранящейся в базе данных.
- Разработка Сайтов процесса жизненного цикла шагов 09.07.2010 Процесс разработки системы может последовать ряд стандартных или компании, конкретных механизмов, методик, инструментов моделирования и Языки.