這個問題在這里已經有了答案: 我可以在 python 中使用 re.sub 時使用正則運算式命名組嗎 2答案 昨天關門。
我只需要替換完整的單詞,所以需要使用反向參考。Re.sub 在使用反向參考時有效:
import re
text = """
a=chef;
b=achefile;
"""
print(re.sub(r'([^\w])chef([^\w])', r'\1boss\2', text))
結果(預期):
a=boss;
b=achefile;
但是,如果我想用“0”替換怎么辦?相同的正則運算式中斷,因為 \1 被解釋為 \10...
print(re.sub(r'([^\w])chef([^\w])', r'\10\2', text))
我找不到如何將命名組與 re.sub 一起使用。搜索字串將是:
r'(?P<start>[^\w])chef([^\w])'
但是替換字串是什么?
uj5u.com熱心網友回復:
使用\g<id>:
print(re.sub(r'([^\w])chef([^\w])', r'\g<1>0\g<2>', text))
# Output
a=0;
b=achefile;
uj5u.com熱心網友回復:
您根本不需要捕獲組。只需使用單詞邊界(\b):
re.sub(r'\bchef\b', 'boss', text)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/418912.html
標籤:
