我知道這個問題已經在這裏回答了Case insensitive replace但我的是有點不同。Python不區分大小寫查找並替換爲同一個發現的詞
我想要的是搜索文本中的某些關鍵字,並用<b>
和</b>
圍繞它們進行替換。且存在四個不同的可能性通過一個例子說明如下:
關鍵詞 = ['hell', 'world']
輸入句子 =
預期輸出1 = '<b>Hell</b> is a wonderful place to say hello and sell shells'
- (未被關鍵字'hell'取代發現的單詞'地獄'。只有完整的匹配取代。)
預期輸出2 = '<b>Hell</b> is a wonderful place to say <b>hello</b> and sell shells'
- (僅與被替換的關鍵字開始匹配的單詞注意,整個單詞被替換得到即使匹配是局部)
。 預期輸出3 = '<b>Hell</b> is a wonderful place to say <b>hello</b> and sell <b>shells</b>'
- (地獄的任何發生替換,但由完全匹配的單詞)
預期輸出4 = '<b>Hell</b> is a wonderful place to say <b>hell</b>o and sell s<b>hell</b>s'
- (地獄的任何發生被替換而不是由完全匹配的單詞。匹配詞的外殼保持完整)
鏈接的SO問題,用找到的關鍵字替換單詞,這不是我想要的。我想保持輸入句子的外殼完好無損。有人能幫我找到解決所有上述四種情況?
,我已經試過代碼:
import re
insensitive_hippo = re.compile(re.escape('hell'), re.IGNORECASE)
insensitive_hippo.sub('hell', 'Hell is a wonderful place to say hello and sell shells')
'hell is a wonderful place to say hello and sell shells'
但這不守發現字完好。
什麼是你期望的輸出? –
考慮到輸入句子和關鍵字列表,這四種類型的翻譯文本是您希望四個輸入句子的期望輸出 –
?你必須顯示你的企圖.. –