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

2024-10-01 02:23:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我似乎找不到这方面的好资源。。我在试着做一个简单的改造

我想把它的零件换掉,但无法确定如何执行此操作的语法。。我知道如何在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)

Tags: 字符串re区域stringvar语法资源细节
3条回答

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

不过,为了回答您的问题,Python使用1而不是$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可以是非常有用的引用。

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

相关问题 更多 >