программно найти и заменить содержимое динамически в строке в Python - PullRequest
0 голосов
/ 06 октября 2010

Мне нужно найти и заменить шаблоны в строке динамически сгенерированным содержимым.

Допустим, я хочу найти все строки внутри '' в строке и удвоить строку. строка типа:

my 'cat' is 'white' должно стать моим 'catcat' is 'whitewhite'

все совпадения могут также появляться в строке дважды.

спасибо

Ответы [ 2 ]

7 голосов
/ 06 октября 2010

Используйте силу регулярных выражений . В данном конкретном случае:

import re

s = "my 'cat' is 'white'"

print re.sub("'([^']+)'", r"'\1\1'", s) # prints my 'catcat' is 'whitewhite'

\1 относится к первой группе в регулярном выражении (в некоторых других реализациях называемой $1).

1 голос
/ 06 октября 2010

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

s = "my 'cat' is 'white'".split("'")
# the parts between the ' are at the 1, 3, 5 .. index 
print s[1::2]
# replace them with new elements
s[1::2] = [x+x for x in s[1::2]]
# join that stuff back together
print "'".join(s)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...