Заменить в Python- * эквивалентом? - PullRequest
0 голосов
/ 23 мая 2009

Если я нахожу и заменяю некоторый текст, как я могу заставить его заменить какой-то текст, который будет меняться каждый день, то есть что-то между ((&)), каким бы он ни был?

Ура!

1 Ответ

4 голосов
/ 23 мая 2009

Используйте регулярные выражения (http://docs.python.org/library/re.html)?

Не могли бы вы быть более конкретным, я не думаю, что полностью понимаю, чего вы пытаетесь достичь.

EDIT:

Хорошо, теперь я вижу. Это может быть сделано еще проще, но здесь идет:

>>> import re

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

Для нескольких уровней скобок это не сработает, или, скорее, сработает, но сделает то, чего вы, вероятно, не хотите.

О, эй, в качестве бонуса приведено то же регулярное выражение, только теперь оно заменит строку в самых внутренних скобках:

r1 = re.compile(r"(\()([^)^(]+?)(\))")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...