我只是在學習正則表達式,并且試圖弄清楚如何用字符串替換字符串中的字符集,而不是替換每個字符(到目前為止,我能做的所有事情)??梢哉f我有一個稱為原始字符串的字符串:original_string = "(cats && dogs) || (cows && chickens)"我想用字符串“ test”替換字符串中的每個單詞。我想要的結果如下所示:new_string = "(test && test) || (test && test)"到目前為止,我的代碼看起來像:replacement = "test" original_string = "(cats && dogs) || (cows && chickens)"new_string = re.sub(r'[^(,^),^&,^|]', replacement, original_string)但這導致貓,狗,牛和雞中的每個角色都被替換為“測試”。所以結果看起來像: (testtesttesttesttest&&testtesttesttesttest)test||test(testtesttesttesttest&&testtesttesttesttesttesttesttesttest)如何使用正則表達式來獲得所需的結果?
1 回答

躍然一笑
TA貢獻1826條經驗 獲得超6個贊
您可以使用更簡單的正則表達式,例如:
replacement = "test"
original_string = "(cats && dogs) || (cows && chickens)"
new_string = re.sub(r'[a-z]+', replacement, original_string)
[a-z]+ 表示一個字母出現了1次以上。
雖然,請盡可能保留原始正則表達式,我將使用以下代碼:
replacement = "test"
original_string = "(cats && dogs) || (cows && chickens)"
new_string = re.sub(r'[^()|& ]+', replacement, original_string)
您無需重復^。
添加回答
舉報
0/150
提交
取消