2009-05-23 6 views
0

Si je trouve & en remplaçant du texte, comment puis-je l'obtenir pour remplacer du texte qui changera chaque jour, donc n'importe quoi entre ((&)) quel qu'il soit?Remplacer en Python- * équivalent?

À la votre!

+0

EDIT-Je ai une chaîne et je remplace certains caractères avec remplacer.(). Pourtant, parfois, le texte que je veux remplacer change - comment puis-je le remplacer, par exemple, entre parenthèses? – Solihull

+0

En ce moment j'essaie d'utiliser. mais il ne semble pas fonctionner – Solihull

+0

Pourriez-vous s'il vous plaît coller le code et quelques exemples d'entrée? –

Répondre

4

Utiliser des expressions régulières (http://docs.python.org/library/re.html)?

Pourriez-vous s'il vous plaît être plus précis, je ne pense pas que je comprends parfaitement ce que vous essayez d'accomplir.

EDIT:

Ok, maintenant je vois. Cela peut être fait encore plus facile, mais ici va:

>>> import re 

>>> s = "foo(bar)whatever" 
>>> r = re.compile(r"(\()(.+?)(\))") 
>>> r.sub(r"\1baz\3",s) 
'foo(baz)whatever' 

Pour plusieurs niveaux de parenthèses cela ne fonctionnera pas, ou plutôt il fonctionnera, mais fera quelque chose que vous ne voulez probablement pas à faire.

Oh hey, comme un bonus est ici la même expression régulière, que maintenant il remplacera la chaîne dans les parenthèses les plus intimes:

r1 = re.compile(r"(\()([^)^(]+?)(\))") 
+0

Un de ces jours, je vais devoir me renseigner sur regex ... Je déteste quand les autres peuvent, avec quelques caractères de non-sens, réaliser ce qui prendrait plusieurs lignes de code pour moi ... – Jaime