Intereting Posts
Автозапуск phpMyAdmin Как преобразовать вариант объекта массива 8209 в VT_VARIANT Идентификатор сеанса PHP изменяется между страницами Есть быстрый способ добавить префиксы ко всем классам CSS и идентификаторам? Как заставить PHP использовать интернационализированные даты? Laravel 4 красноречивый опорный стол Передача переменной JQuery в php в модальном Force загрузить файл с PHP, дающим пустой файл Добавление комментария к заказу в magento PHP-фронт-контроллер без необходимости жесткого кодирования baseroot Получить внутренний HTML родительского элемента с php и xpath Строка анализа, содержащая диапазон значений до минимальных и максимальных переменных Как размножить интервал по идентификатору с помощью JavaScript? Доктрина Symfony2 получает случайный продукт из категории Не удается получить тело сообщения определенных почтовых ящиков из почтовых ящиков с использованием рамки Zend?

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

Ниже приведен список примеров примеров регулярных выражений php. возможно, это помогает кому-то, поскольку администратор / или другой пользователь не может понять, что я пытался поделиться своими подходами.

preg_match выполняет поиск (preg_replace является заменой).
preg_match имеет три параметра – preg_match (FindWhat, FindWhere, GivingOutput);

пример 1) :

<?php //everything expect letters and numbers $text='abc345fg@h'; $newfilename=preg_match('/[^a-zA-Z0-9.]/',$text, $out); echo $out[0]; ?> output will be: @ 

preg_match находит только один результат (первый найденный результат) с двумя параметрами: [0] или [1].

пример 2) : найти все (любые символы, слова ..) в наших критериях поиска:

 <?php $text='abcdefghijklmnopqrst'; $newfilename=preg_match('/ij(.*?)mn/',$text, $out); echo $out[0]; echo $out[1]; ?> [1] -gives only the inner search result (what we had in the brackets, between "ij" and "mn"): kl [0] -gives the whole search result: ijklmn 

(Обратите внимание: эта опция [1] недоступна, если вы не используете скобки в критериях поиска (как мы уже указывали выше, в примере 1)

пример 3) : если ваш целевой текст имеет много одинаковых событий, например: $ text = 'hello user Jimmy Jones , его я. привет, пользователь Mery Pawders , его все еще я. ';

теперь, вот два разных совпадения, поэтому нам нужно использовать preg_match_all

 <?php $text='hello user Jimmy Jones, its me. hello user Mery Pawders, its me.'; $newfilename=preg_match_all('/hello user (.*?) its/',$text, $out); foreach ($out[1] as $found_one) {echo $found_one;} //or use $out[0] for full search match ?> output will be: Jimmy Jones, Mery Pawders, 

пример 4) : поиск среди множества возможностей:

 <?php $text = 'member ACCOUNT7'; preg_match("/ACCOUNT[123456789]/",$text,$out); echo $out[1]; ?> output will be: ACCOUNT7 

пример 5) : Чтобы найти строку, в то время как текст ввода содержит новые строки, вы должны использовать ** s ** в конце;

 <?php $text = 'one two three'; preg_match("/one(.*?)three/s",$text,$out); echo $out[1]; ?> output will be: two 

пример 6) : ваш поиск всегда чувствителен к регистру. Чтобы сделать случай INSENSITIVE, используйте i в конце (если хотите, без s );

 <?php $text = 'ONE TWO TREE'; preg_match("/one(.*?)three/si",$text,$out); echo $out[1]; ?> 

пример 7) : для поиска специальных символов (например, /".<* '? и т. д.) внутри preg_match вам нужно использовать этот escape-знак: \

 <?php $text = 'hello Jimmy/Kroger '; preg_match("/Jimmy\/Kroger/",$text,$out); echo $out[0]; ?> 

теперь мы можем использовать оператор ^, который ищет результаты обратно.

пример 8) : найти все, а не буквы и цифры:

 <?php $text = 'abc@*&^)($%'; preg_match_all('/[^a-zA-Z0-9.]/',$text,$out); foreach ($out[0] as $varr) {echo $varr;} ?> output will be: @*&^)($% 

для SEARCH и REPLACE у нас немного другая структура, так как нам нужно использовать новую переменную.

пример 9) : найти и заменить все, а не буквы и цифры другим символом, используя этот оператор: ^

 <?php $text = 'ab2sq)(&*(%$%^$@%n23f9'; $variable = preg_replace('/[^a-zA-Z0-9.]/','a',$text); echo $variable; ?> output will be: ab2sqn23f9 

пример 10) : найдите и добавьте что-то внутри найденных результатов:

 <?php $text = 'Hi, its me, Niko from Austria'; $variable = preg_replace('/(Niko.*?) from/', '$1 Gomez', $text); echo $variable; ?> output will be : its me, Niko Gomez Austria 

пример 11) : найти все ссылки внутри текста:

 <?php $text = 'hi, my site is http://example.com, and on my page, at http://example.com/page37/blabla.html i wrote something..'; preg_match_all("/[[:alpha:]]+:\/\/[^<>[:space:]]+[[:alnum:]\/]/",$text, $out); foreach($out[0] as $varr){echo $varr;} ?> output will be: http://example.com http://example.com/page37/blabla.html 

пример 12) : как пример 11 (но с заменой) – найдите ссылки в тексте и поместите их в привязанные теги:

 <?php $text = 'hi, my site is http://example.com, and on my page, at http://example.com/page37/trid.html i wrote something..'; $variable = preg_replace("/[[:alpha:]]+:\/\/[^<>[:space:]]+[[:alnum:]\/]/",'<a href="\\0">\\0</a>', $text); echo $variable; ?> 

вывод будет тем же предложением, но ссылки будут привязаны.

1) Советы. Не используйте preg_match (), если вы хотите только проверить, содержится ли одна строка в другой строке. Вместо этого используйте stristr () или strpos (), поскольку они будут быстрее.

2) ** более продвинутые конкретные примеры о регулярных выражениях php, используйте google или см. ** ПОЛНЫЕ ВАРИАНТЫ И РУКОВОДСТВА по адресу: http://www.php.net/manual/en/reference.pcre.pattern.syntax.php

(В скором времени вы можете просмотреть список всех операторов –
http://www.catswhocode.com/blog/15-php-regular-expressions-for-web-developers
http://www.noupe.com/php/php-regular-expressions.html
)

3) для hmtl-кодов существует специальный свет, php soft, называемый Dom Parser. но иногда, если вы хорошо знаете регулярные выражения php, вам может не понадобиться парсер.

Solutions Collecting From Web of "Регулярные выражения и соответствие"

Попробуйте это регулярное выражение:

 /^Shop.*0$/i 

Это проверяет магазин в начале и ноль в конце.

Я предполагаю, что когда вы говорите «$ email», вы имеете в виду материал перед знаком @ . В этом случае вы можете использовать это регулярное выражение:

 $email = 'SHOP_psgarden_0@somewhere.com'; if (preg_match('/^shop.*0@/i', $email) === 1) { echo 'Yes!'; } 

Вы также можете проверить, используя обычный процедурный код:

 $email = 'SHOP_psgarden_0@somewhere.com'; $local = substr($email, 0, strpos($email, '@')); $amalgam = substr($local, 0, 4) . substr($local, -1); if (strcasecmp('shop0', $amalgam) === 0) { echo "yes"; } else { echo "no"; }