PHP preg match et preg match toutes les fonctions
je voudrais savoir ce que l' preg_match
et preg_match_all
fonctions et comment les utiliser.
4 réponses
preg_match
cesse de s'occuper du premier match. preg_match_all
, d'un autre côté, continue à regarder jusqu'à ce qu'il termine le traitement de la chaîne entière. Une fois la correspondance trouvée, il utilise le reste de la chaîne pour essayer d'appliquer une autre correspondance.
preg_match et preg_match_all les fonctions en PHP utilisent des expressions régulières compatibles Perl.
vous pouvez regarder cette série pour bien comprendre les expressions régulières compatibles Perl: https://www.youtube.com/watch?v=GVZOJ1rEnUg&list=PLfdtiltiRHWGRPyPMGuLPWuiWgEI9Kp1w
preg_match($pattern, $sujet, &$matches, $drapeaux, $offset)
preg_match
la fonction est utilisée pour rechercher un $pattern
dans un $subject
string et quand le motif est trouvé la première fois, il arrête de le chercher. Il affiche les correspondances dans le $matches
, où $matches[0]
contiendra le texte qui satisfait le masque complet, $matches[1]
aura le texte qui correspond au premier sous-motif entre parenthèses capturé, et ainsi de suite.
Exemple preg_match()
<?php
preg_match(
"|<[^>]+>(.*)</[^>]+>|U",
"<b>example: </b><div align=left>this is a test</div>",
$matches
);
var_dump($matches);
Sortie:
array(2) {
[0]=>
string(16) "<b>example: </b>"
[1]=>
string(9) "example: "
}
preg_match_all($motif, $sujet, &$matches, $options)
Le preg_match_all
la fonction recherche toutes les correspondances dans une chaîne et les affiche dans un tableau multidimensionnel ($matches
), ordonnés selon $flags
. Lorsque n $flags
la valeur est passée, elle commande les résultats de sorte que $matches[0]
est un tableau de motif complet des matchs, $matches[1]
est un tableau de chaînes correspondant au premier sous-motif entre parenthèses, et ainsi de suite.
Exemple preg_match_all()
<?php
preg_match_all(
"|<[^>]+>(.*)</[^>]+>|U",
"<b>example: </b><div align=left>this is a test</div>",
$matches
);
var_dump($matches);
Sortie:
array(2) {
[0]=>
array(2) {
[0]=>
string(16) "<b>example: </b>"
[1]=>
string(36) "<div align=left>this is a test</div>"
}
[1]=>
array(2) {
[0]=>
string(9) "example: "
[1]=>
string(14) "this is a test"
}
}
Un exemple concret:
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
)
le manuel PHP peut vous aider.
faites - nous savoir si vous avez du mal à comprendre.