PHP/REGEX: Obtenir une chaîne de caractères à l'intérieur des parenthèses
C'est un problème très simple, mais je ne pouvais pas trouver une solution, n'importe où.
Je suis d'essayer d'utiliser preg_match ou preg_match_all pour obtenir une chaîne à partir de l'intérieur des parenthèses, mais sans les parenthèses.
Jusqu'à présent, mon expression ressemble à ceci:
\([A-Za-z0-9 ]+\)
et renvoie le résultat suivant:
3(creux mettez en surbrillance) 928-129 (<- chaîne d'origine)
(creux mettez en surbrillance) (<- résultat)
Ce que je veux, c'est la chaîne à l'intérieur des parenthèses, mais sans les parenthèses. Il devrait ressembler à ceci:
creux en évidence
Je pourrais probablement remplacer les parenthèses par la suite avec str_replace ou quelque chose, mais qui ne semble pas être une solution élégante pour moi.
Que dois-je ajouter, de sorte que les parenthèses ne sont pas inclus dans le résultat?
Merci pour votre aide, vous les gars sont super! 🙂
Double Possible de PHP: la Meilleure façon d'extraire le texte entre parenthèses?
OriginalL'auteur Macks | 2012-06-28
Vous devez vous connecter pour publier un commentaire.
Vous avez juste besoin d'ajouter de la capture de la parenthèse, en plus de votre échappé à la parenthèse.
Ce sorties:
Oups, désolé du échappé à barres obliques inverses; fixe maintenant. Non échappé à crochets ont une signification particulière: la capture. Voir, par défaut, le match est capturé dans
[0]
, c'est pourquoi$out[0]
contient tout, même les crochets vous ne voulez pas. Chaque()
capture, bien, capture tout ce qui est entre eux, et les stocke dans séquentielle indices de tableau, c'est à dire[1]
,[2]
,[3]
, etc. Par exemple, si votre chaîne est "abc123def456" et votre regex est/abc(\d+)(\w+)(\d)(\d+)/
, vos captures afin de:[1]
= "123",[2]
= "def",[3]
= "4" et[4]
= "56".La différence entre
preg_match
etpreg_match_all
est que ce dernier, comme son nom l'indique, le match de tous, de sorte qu'il y aura un tableau dans le tableau:[1] = { "world", "is andrew", "845" }
.Merci acheong87. J'ai essayé de le lire moi-même, mais je n'ai pas l'obtenir. Votre explication était cependant beaucoup, je le comprends maintenant. Merci beaucoup! 🙂
OriginalL'auteur Andrew Cheong
essayer:
de sortie:
merci cela a fonctionné pour moi
Vous avez vraiment sauvé ma journée 🙂
il a travaillé pour moi 🙂
grâce à vous , il a travaillé pour moi .
OriginalL'auteur Piotr Olaszewski