我有一個看起來像的字串 -
str1="lol-tion haha-futures-tion yo-tion ard-tion pomo-tion"
我想tion用cloud IF-替換子字串,它在 lol 和 tion 之間只有 1lol-tion
str2=str1.replace('tion','cloud')
但是當這個詞有兩個-類似的實體時,haha-futures-tion我想像下面那樣替換它-
str3=str1.replace('tion','')
期待輸出->haha-futures
我怎樣才能完成這兩個條件替換?
uj5u.com熱心網友回復:
您可以使用正則運算式和條件嘗試此代碼,
import re
str1="lol-tion haha-futures-tion yo-tion ard-tion pomo-tion"
str2=""
for sub_string in str1.split(' '):
if re.search(r'^[a-z,-] -tion$', sub_string):
if re.match(r"[a-zA-Z] [-][a-zA-Z] -tion$",sub_string):
print("match")
sub_string=sub_string.replace('tion','')
else:
sub_string=sub_string.replace('tion','cloud')
print(sub_string)
str2 =sub_string " "
print(str2)
uj5u.com熱心網友回復:
您的描述不是很清楚,也沒有完全說明在所有情況下應該發生什么,但這是一種解釋:
def replace_tion(word):
replacements = {1: 'cloud', 2: ''}
replacement = replacements.get(word.count('-'), 'tion')
return word.replace('tion', replacement)
str1 = "lol-tion haha-futures-tion yo-tion ard-tion pomo-tion"
tions_replaced = ' '.join(replace_tion(word) for word in str1.split(' '))
# 'lol-cloud haha-futures- yo-cloud ard-cloud pomo-cloud'
uj5u.com熱心網友回復:
IIUC 這將起作用:
new_str1 = ' '.join([string.strip('-tion')
if string.count('-')==2
else string.replace('tion','cloud')
for string in str1.split(' ')])
print(new_str1)
'lol-cloud haha-futures yo-cloud ard-cloud pomo-cloud'
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488830.html
下一篇:如何使用ncurses接收字串?
