Funkcje PHP preg_match i preg_match_all


Chciałbym wiedzieć, co robią funkcje
preg_match
i
preg_match_all
i jak z nich korzystać.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

preg_match
przestaje oglądać po pierwszym dopasowaniu. Z drugiej strony
preg_match_all
kontynuuje wyszukiwanie, dopóki nie zakończy przetwarzania całej linii. Po znalezieniu dopasowania używa reszty ciągu, aby spróbować zastosować inne dopasowanie.
http://php.net/manual/en/funct ... l.php
http://php.net/manual/en/funct ... l.php
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jak działa

preg_match
http://php.net/manual/en/function.preg-match.php
i

preg_match_all
http://php.net/manual/en/funct ... l.php
PHP używa wyrażeń regularnych zgodnych z Perlem.
Możesz przyjrzeć się tej serii, aby w pełni zrozumieć wyrażenia regularne zgodne z Perlem:

https://www.youtube.com/watch% ... 9Kp1w
https://www.youtube.com/watch% ... 9Kp1w

preg_match ($pattern, $subject, &$matches, $flags, $offset)
>
Funkcja
preg_match
służy do wyszukiwania określonego
$ pattern
w ciągu znaków
$ subject
, a gdy wzorzec zostanie znaleziony po raz pierwszy, przestaje go szukać. Wyprowadza dopasowania w
$ pasuje
, gdzie
$ pasuje [0]
będzie zawierać tekst pasujący do pełnego wzorca, a
$ pasuje [1]
będzie zawierać tekst pasujący do pierwszego przechwyconego wzorca podrzędnego w nawiasach i tak dalej.

Przykład
preg_match ()
>
<pre class="lang-php prettyprint-override">
<?php
preg_match( "|<[^>]+>(.*)</[^>]+>|U",
"[b]example: [/b]<div align=left>this is a test",
$matches);var_dump($matches);

Wyjście:
array(2) {
[0]=>
string(16) "[b]example: [/b]"
[1]=>
string(9) "example: "
}


preg_match_all($pattern, $subject, &$matches, $flags)
>
Funkcja
preg_match_all
wyszukuje wszystkie dopasowania w ciągu i wyświetla je w wielowymiarowej tablicy (
$ pasuje
), uporządkowanej według
$ flags
. Gdy nie jest przekazywana żadna wartość
$ flags
, porządkuje wyniki w taki sposób, że
$ pasuje [0]
jest tablicą pełnych dopasowań do wzorca,
$ pasuje [1]
to tablica ciągów pasujących do pierwszego pod-wzorca ujętego w nawiasy i tak dalej. [/code]
Przykład
preg_match_all ()
>
<pre class="lang-php prettyprint-override">
<?php
preg_match_all( "|<[^>]+>(.*)</[^>]+>|U",
"[b]example: [/b]<div align=left>this is a test",
$matches);var_dump($matches);

Wyjście:
array(2) {
[0]=>
array(2) {
[0]=>
string(16) "[b]example: [/b]"
[1]=>
string(36) "<div align=left>this is a test"
}
[1]=>
array(2) {
[0]=>
string(9) "example: "
[1]=>
string(14) "this is a test"
}
}
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Konkretny przykład:
preg_match("/find[ ]*(me)/", "find me find me", $matches):
$matches = Array( [0] => find me
[1] => me)preg_match_all("/find[ ]*(me)/", "find me find me", $matches):
$matches = Array( [0] => Array
( [0] => find me
[1] => find me
) [1] => Array
( [0] => me
[1] => me
))preg_grep("/find[ ]*(me)/", ["find me find me", "find me findme"]):
$matches = Array
( [0] => find me find me
[1] => find me findme)

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się