亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python中有沒有辦法替換字符串但保留中間字符完整?

python中有沒有辦法替換字符串但保留中間字符完整?

交互式愛情 2024-01-15 15:31:39
有沒有什么方法可以替換文件中所有出現的字符串,同時保留字符串中間的未知字符完好無損?例如,將字符串 'ab{unknown}cde' 替換為 '(ab{unknown}cde)'
查看完整描述

2 回答

?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

這與其說是替換,不如說是將匹配的子字符串括在括號中。


>>> re.sub('(ab.cde)', r'(\1)', '123abxcde456')

'123(abxcde)456'

模式就是正則表達式ab.cde。模式中的括號表示整個匹配是一個捕獲組。替換文本是一對括號,其中包含(第一個)組匹配的內容。


您還可以指定一個接收正則表達式匹配結果的函數,而不是替換文本。如果沒有別的辦法,這可以讓您避免在正則表達式中顯式定義捕獲組。


def surround(m):

    return f'({m.group()})'


new_str = re.sub('ab.cde', surround, '123abxcde456')

assert new_str == '123(abxcde)456'


查看完整回答
反對 回復 2024-01-15
?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

您可以使用正則表達式來識別已知部分并用某些通配符替換未知部分。在你的例子中,


from re import sub


replaced = sub('(ab.cde)', r'(\1)', 'asdasdab5cdeasdasd')


查看完整回答
反對 回復 2024-01-15
  • 2 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號