salut je veux remplacer tous "e" dans une chaîne avec "-" qui ne suivent pas une barre oblique inverse donc "bonjour" devrait être -> "h-llo" mais "h \ ello" devrait être "bonjour" des idées si cela est possible avec une seule regex?php: comment remplacer une lettre ne pas suivre une barre oblique inverse
Répondre
Il est impossible d'utiliser le drapeau e
si vous avez besoin de combiner les deux expressions rationnelles puisque le remplacement est différent.
preg_replace('/(\\\\?e)/e', "'\\1'=='e'?'-':'e'", $str);
(Utilisation: http://www.ideone.com/S2uiS)
Il n'y a pas besoin d'utiliser regex bien. The strtr
function est capable d'effectuer ce genre de remplacement.
strtr($str, array('\\e' => 'e', 'e' => '-'));
(Utilisation: http://www.ideone.com/yg93g)
+1 pour 'strtr'. –
Donnerait un autre +1 à 'strtr()' si je le pouvais. – BoltClock
Vous pouvez utiliser un negative lookbehind pour assurer que le caractère avant e n'est pas une barre oblique inverse:
$string = preg_replace('/(?<!\\)e/', "-", $string);
thx pour votre réponse rapide! il y avait une erreur lancée par php je l'ai changé en preg_replace ('/ (? "test". Je sais que je peux le faire dans une seconde fonction de remplacement. mais est-il possible de l'intégrer dans votre regex? – lhwparis
Non, vous avez besoin d'une seconde opération de remplacement pour cela. –
Vous n'avez même pas besoin d'une seconde regex pour cela, utilisez juste 'str_replace ('\\', '', $ your_string)' –
- 1. comment remplacer la barre oblique inverse en php en XML?
- 2. Je veux une barre oblique inverse - pas deux
- 3. PHP - supprimer une barre oblique inverse à partir d'une apostrophe
- 4. Barre oblique inverse supplémentaire nécessaire dans le modèle PHP regexp
- 5. Ejection de barre oblique inverse dans Postgresql
- 6. en utilisant la barre oblique inverse en python (pas échapper)
- 7. Sérialisation d'une chaîne avec barre oblique inverse
- 8. Remplacer la barre oblique inverse par un autre symbole dans PHP
- 9. ResourceBundle.getString caractère barre oblique inverse supprimé
- 10. Comment générer un chemin de répertoire avec des séparateurs à barre oblique inverse ou à barre oblique inverse?
- 11. [Python] Comment gérer une chaîne se terminant par une barre oblique inverse?
- 12. Exclure la barre oblique inverse littérale en Javascript Expression régulière
- 13. Opérations de chaîne de shell Windows (modification de barre oblique inverse à barre oblique)
- 14. Comment ajouter une seule barre oblique inverse à une chaîne dans Ruby?
- 15. Pourquoi php insère une barre oblique inverse en remplaçant les guillemets?
- 16. Comment utiliser la barre oblique inverse dans NSURL
- 17. Que fait "//" (barre oblique, barre oblique) dans un chemin PHP?
- 18. compter les citations dans une chaîne qui n'ont pas de barre oblique inverse avant elles
- 19. Regex pour tout avant la dernière barre oblique ou la barre oblique inverse
- 20. en utilisant preg_replace pour ajouter une barre oblique inverse avant un guillemet simple
- 21. jQuery Diaporama erreur de barre oblique inverse du plugin
- 22. Insérer (ou ajouter) une ligne se terminant par une barre oblique inverse (\) en utilisant sed
- 23. Suppression d'une barre oblique inverse précédente à partir d'apostrophes
- 24. JavaScript: une barre oblique inverse dans le cadre de la chaîne
- 25. Comment référencer un serveur SQL avec une barre oblique inverse (\) dans son nom?
- 26. Comment est-ce que j'échappe à une chaîne échappée de barre oblique inverse en python?
- 27. Recherche d'un caractère barre oblique inverse dans vim
- 28. Regex pour l'URL avec barre oblique inverse à la fin
- 29. XSLT esacapes d'appel de fonction extenison barre oblique inverse
- 30. Envoyer une barre oblique à travers mysql
Que devrait ' "h \ avant"' regarder comme après avoir été remplacé (un 'e' a un backslash mais l'autre ne le fait pas)? Devrait-il devenir "her-" '? – BoltClock