[英]Conditionally replace substring in a string
我有一個看起來像的字符串 -
str1="lol-tion haha-futures-tion yo-tion ard-tion pomo-tion"
我想用cloud
替換子字符串IF它只有 1 -
在 lol 和tion
lol-tion
之間
str2=str1.replace('tion','cloud')
但是當這個詞有兩個-
比如實例haha-futures-tion
我想像下面一樣替換它 -
str3=str1.replace('tion','')
期待輸出-> haha-futures
我怎樣才能完成這兩個條件替換?
您可以使用正則表達式和條件嘗試此代碼,
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)
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'
您的描述不是很清楚,也沒有完全說明在所有情況下應該發生什么,但這是一種解釋:
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'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.