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

Ric*_*ick 18 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)
Run Code Online (Sandbox Code Playgroud)

Uma*_*ang 19

>>> 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'
Run Code Online (Sandbox Code Playgroud)

编辑:Python文档可以是非常有用的参考.

  • 我知道,我不知道为什么每个人都提到这个(关于python文档),我已经知道这些并且已经浏览了它们,我在这里发帖,因为我在咨询这个之后仍然不清楚如何做到这一点,Python似乎不像PHP那样在这样的话题上有很多其他资源所以,经过多次搜索,我觉得我应该发帖在这里(我不是因为我喜欢它而批评python,它只是一个观察) (6认同)
  • 实际上使用原始字符串允许您使用单个斜杠r'\ 1' (2认同)

Dan*_*uev 7

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