J'utilise l'expression rationnelle suivante pour remplacer toute ponctuation dans une chaîne:Regex pour supprimer des caractères spécifiques
preg_replace('/[^\w\s]/', '', $tweet);
avec \ w étant un raccourci pour [a-zA-Z0-9_] et \ s est utilisé aux espaces d'ommit. J'ai appris cette sagesse ici: Strip punctuation in an address field in PHP. Mais maintenant, je dois le regex pour dépouiller tous les caractères sauf
a-z and A-Z
{ and }
il devrait donc dépouiller tous les points, les virgules, les numéros etc. Quelle est la regex correcte pour cela?
Est-ce que '/ [^ a-zA-Z {}] + /' mieux? De cette façon, chaque action match-replace est effectuée pour une séquence de caractères illégaux, plutôt que chacun. (Performance) – FakeRainBrigand
@FakeRainBrigand: C'est marrant de le mentionner. :) Je pensais à cela moi-même en postant, mais je n'avais pas de faits concrets comparés, donc j'étais hésitant à réclamer quoi que ce soit. Ajouté votre variante à la réponse de toute façon, pour une meilleure exposition. – Regexident
Merci les gars, mais cela supprime tous les espaces. Ma faute - il n'était pas répertorié comme un personnage légal. Quelqu'un pourrait-il s'étendre? – Pr0no