這是我的字串
text = 'EffectsRelaxed96% VotedHappy79% VotedEuphoric67% Voted'
我試過這個:
add_space_after_word = re.sub(r"(\w)([A-Z])", r"\1 \2", text)
>>>'Effects Relaxed96% Voted Happy79% Voted Euphoric67% Voted'
seperate_digites_from_words = 'Effects Relaxed96% Voted Happy79% Voted Euphoric67% Voted'
re.sub(r"(\d\d)", r" \1", seperate_digites_from_words)
>>>'Effects Relaxed 96% Voted Happy 79% Voted Euphoric 67% Voted'
我的預期結果是:
'Effects: Relaxed 96% Voted, Happy 79% Voted, Euphoric 67% Voted'
有什么辦法可以用一行代碼而不是寫兩行代碼來做到這一點?我也想在單詞 Voted 后添加逗號,并想在單詞 Effects 后添加分號。
uj5u.com熱心網友回復:
您可以使用
import re
text = 'EffectsRelaxed96% VotedHappy79% VotedEuphoric67% Voted'
print( re.sub(r'([a-z])([A-Z0-9])', r'\1 \2', text).replace("Effects", "Effects:").replace("Voted", "Voted,").rstrip(',') )
# => Effects: Relaxed 96% Voted, Happy 79% Voted, Euphoric 67% Voted
請參閱Python 代碼演示。
正([a-z])([A-Z0-9])
則運算式匹配一個小寫字母(捕獲到第 1 組),然后匹配一個大寫字母或數字(捕獲到第 2 組)。替換的是第 1 組和第 2 組,它們之間有一個空格。
str.replace
由于單詞是已知的,因此使用 mere 添加冒號和逗號。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/531698.html
上一篇:正則運算式模式匹配多個字符并拆分