Maison > développement back-end > tutoriel php > Comment extraire plusieurs segments de texte entre crochets à l'aide de PHP ?

Comment extraire plusieurs segments de texte entre crochets à l'aide de PHP ?

Susan Sarandon
Libérer: 2024-12-05 07:10:14
original
981 Les gens l'ont consulté

How to Extract Multiple Text Segments Enclosed in Square Brackets using PHP?

Capturer plusieurs segments de texte entre crochets en PHP

Question :

Comment capturer tous les segments de texte placés entre crochets dans un chaîne ?

Réponse :

Pour capturer plusieurs segments de texte entre crochets, utilisez l'expression régulière suivante :

/\[[^\]]*\]/
Copier après la connexion

Cette expression régulière correspond à n'importe quelle chaîne qui commence par un crochet, contient un nombre quelconque de caractères autres que des crochets et se termine par un crochet.

Pour extraire le segments capturés, utilisez la fonction preg_match_all(). Cette fonction prend le modèle regex et la chaîne cible en entrée et renvoie un tableau contenant toutes les correspondances. Le code PHP suivant montre comment capturer plusieurs segments de texte à l'aide de cette expression régulière :

$text = '[This] is a [test] string, [eat] my [shorts].';
preg_match_all("/\[[^\]]*\]/", $text, $matches);
var_dump($matches[0]);
Copier après la connexion

Ce code produit le résultat suivant :

array(4) {
  [0] =>
  string(5) "[This]"
  [1] =>
  string(5) "[test]"
  [2] =>
  string(5) "[eat]"
  [3] =>
  string(7) "[shorts]"
}
Copier après la connexion

Alternative pour extraire du texte sans crochets :

Pour extraire uniquement le texte entre crochets, utilisez la commande suivante regex :

/\[([^\]]*)\]/
Copier après la connexion

Cette regex correspond à toute chaîne commençant par un crochet, contenant un nombre quelconque de caractères autres que des crochets et se terminant par un crochet. Les caractères entre crochets sont regroupés à l'aide de parenthèses.

Pour extraire les segments capturés sans les crochets, utilisez le 1 er groupe de capture, comme indiqué dans le code PHP suivant :

preg_match_all("/\[([^\]]*)\]/", $text, $matches);
var_dump($matches[1]);
Copier après la connexion

Ce code produit le résultat suivant :

array(4) {
  [0] =>
  string(4) "This"
  [1] =>
  string(4) "test"
  [2] =>
  string(3) "eat"
  [3] =>
  string(6) "shorts"
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal