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

Вот список примеров примеров регулярных выражений 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Джимми Джонс, это я. привет пользователь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): Ваш поиск всегда чувствителен к регистру. Чтобы сделать случай НЕДОЧУЩИЙ поиск, используйте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:
@*&^)($%

ПОИСК и ЗАМЕНАУ нас немного другая структура, так как нам нужно использовать новую переменную.пример 9)

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

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

: поиск и добавление чего-либо внутри найденного результата:пример 11)

<?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

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

<?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

: как в примере 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 существует специальный light, php soft, называемый Dom Parser. но иногда, если вы хорошо знаете регулярные выражения php, вам может не понадобиться dom parser.
)

Как бы электронная почта начиналась с

Ответы на вопрос(2)

Ваш ответ на вопрос