簡體   English   中英

Python Regex,re.sub,替換模式的多個部分?

[英]Python Regex, re.sub, replacing multiple parts of pattern?

我似乎無法找到一個很好的資源..我正在嘗試做一個簡單的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)
>>> 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文檔可以是非常有用的參考。

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

python文檔在線,re模塊的文檔在這里。 http://docs.python.org/library/re.html

要回答你的問題,Python使用\\ 1而不是$ 1來引用匹配的組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM