Подтвердить что ты не робот

Python Regex, re.sub, заменяя несколько частей шаблона?

Я не могу найти хороший ресурс. Я пытаюсь сделать простой re.place

Я хочу заменить часть, где находится ее (. *?), но не могу понять синтаксис о том, как это сделать. Я знаю, как это сделать на PHP, поэтому я возился с тем, что Я думаю, что это может быть основано на этом (поэтому у него есть 1 доллар, но я знаю, что это неправильно в python). Я был бы признателен, если кто-нибудь сможет показать правильный синтаксис, я не задаю специфику какой-либо определенной строки, как я могу заменить что-то подобное, или если у него больше 1() области.. спасибо

originalstring = 'fksf var:asfkj;'
pattern = '.*?var:(.*?);'
replacement_string='$1' + 'test'
replaced = re.sub(re.compile(pattern, re.MULTILINE), replacement_string, originalstring)
4b9b3361

Ответ 1

>>> import re
>>> originalstring = 'fksf var:asfkj;'
>>> pattern = '.*?var:(.*?);'
>>> pattern_obj = re.compile(pattern, re.MULTILINE)
>>> replacement_string="\\1" + 'test'
>>> pattern_obj.sub(replacement_string, originalstring)
'asfkjtest'

Изменить: Python Docs может быть довольно полезной ссылкой.

Ответ 2

>>> import re
>>> regex = re.compile(r".*?var:(.*?);")
>>> regex.sub(r"\1test", "fksf var:asfkj;")
'asfkjtest'

Ответ 3

Документы python находятся в режиме онлайн, а один для модуля re здесь. http://docs.python.org/library/re.html

Чтобы ответить на ваш вопрос, Python использует \1, а не $1, чтобы ссылаться на сопоставленные группы.