Supprimer le Texte Entre Parenthèses PHP
Je me demande comment j'ai pu supprimer le texte entre parenthèses et les parenthèses eux-mêmes en php.
Exemple :
ABC (Test1)
Je voudrais l'effacer (Test1) et de ne plus laisser ABC
Grâce
Vous devez vous connecter pour publier un commentaire.
preg_replace
est basé sur perl remplacement d'expressions régulières de routine. Ce que ce script n'est correspond à toutes les occurrences d'une parenthèse ouvrante, suivi d'un nombre quelconque de caractères pas une parenthèse fermante, et de nouveau suivi par une parenthèse fermante, et puis les supprime:Expression régulière ventilation:
A (B (C) D)
et vous laisse avecA D
La accepté de répondre fonctionne très bien pour les non-parenthèses imbriquées. Une légère modification de la regex permet de travailler sur des parenthèses imbriquées.
sans regex
Il fonctionne en boucle dans chaque personnage, le comptage des parenthèses. Seulement quand
$paren_num == 0
(quand il est en dehors de toutes les parenthèses), il fait ajouter les caractères à notre chaîne résultante,$new_string
.Les gens, les expressions régulières NE peuvent pas être utilisées pour analyser les non-langages réguliers. Non-langages réguliers sont ceux qui exigent de l'état à l'interpréter (c'est à dire de rappeler combien les parenthèses sont actuellement ouverts).
Toutes les réponses ci-dessus échoue sur cette chaîne: "ABC ("bonjour" (monde) comment êtes-vous)".
Lire Jeff Atwood d'Analyse du Html, Le Cthulhu Façon: https://blog.codinghorror.com/parsing-html-the-cthulhu-way/, et ensuite utiliser un en-main à l'analyseur (boucle à travers les caractères dans la chaîne, voir si le caractère est une parenthèse ou non, de maintenir une pile), ou utiliser un analyseur lexical/analyseur capable de l'analyse d'un contexte de langue gratuit.
Voir aussi cet article de wikipédia sur le "langage de l'assembler correctement des parenthèses:" https://en.wikipedia.org/wiki/Dyck_language
\(([^()]*+|(?R))*\)
correspond arbitrairement les parenthèses imbriquées à l'amende juste.Plus quik méthode (sans preg):
Si vous ne voulez pas couper les espaces en fin de mot, il suffit de retirer la garniture de la fonction de code.