Maison >développement back-end >tutoriel php >Comment extraire du texte entre crochets à l'aide d'expressions régulières PHP ?

Comment extraire du texte entre crochets à l'aide d'expressions régulières PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-28 15:57:101051parcourir

How to Extract Text Enclosed in Square Brackets Using PHP Regular Expressions?

Extraire du texte entre crochets en PHP

Le défi de capturer du texte entre crochets en PHP nécessite une approche nuancée. Une tentative courante, utilisant /[.*?]/ comme expression régulière, ne récupère que la première instance, vous laissant avec un résultat incomplet.

Capture de l'enceinte :

Pour surmonter cette limitation, utilisez des expressions régulières qui englobent l'intégralité du texte entre crochets. Considérez le modèle :

$text = '[This] is a [test] string, [eat] my [shorts].';
preg_match_all("/\[[^\]]*\]/", $text, $matches);

Ici, /[1]/ fonctionne comme une expression régulière qui correspond à n'importe quelle chaîne entre crochets. Le caractère caret (^) correspond au début de la chaîne, suivi d'un crochet. La partie 2 signifie un caractère qui n'est pas une parenthèse. L'astérisque () correspond à n'importe quel nombre d'occurrences et le crochet final conclut le modèle.

L'exécution de cette expression régulière sur le texte fourni entraînera :

Array (
     [0] => [This]
     [1] => [test]
     [2] => [eat]
     [3] => [shorts]
)

Capturer le texte à l'intérieur :

Vous pouvez également souhaiter extraire le texte sans les crochets. Cela nécessite une expression régulière modifiée :

$text = '[This] is a [test] string, [eat] my [shorts].';
preg_match_all("/\[([^\]]*)\]/", $text, $matches);

Dans cette expression régulière, (3*) capture n'importe quel caractère entre crochets, supprimant efficacement les crochets de la sortie. Vous obtiendrez :

Array (
     [0] => This
     [1] => test
     [2] => eat
     [3] => shorts
)

N'oubliez pas que cette expression régulière suppose que les crochets ne sont pas imbriqués dans le texte.


  1. ]
  2. ]
  3. ]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn