Python Regex,re.sub,替换模式的多个部分?

时间:2010-08-19 07:02:46

标签: python regex

我似乎无法在此找到一个好资源..我正在尝试做一个简单的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)

3 个答案:

答案 0 :(得分:18)

>>> 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可能非常有用。

答案 1 :(得分:7)

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

答案 2 :(得分:-3)

python文档在线,re模块的文档在这里。 http://docs.python.org/library/re.html

要回答你的问题,Python使用\ 1而不是$ 1来引用匹配的组。