我想從字符串中刪除首字母縮略詞中的句點,但我也希望o定期(例如在句子結尾)保留句號。正則表達式來刪除首字母縮略詞中的句點?
所以下面的句子:
"The C.I.A. is a department in the U.S. Government."
應該成爲
"The CIA is a department in the US Government."
有沒有乾淨的方式來做到這一點使用Python?到目前爲止,我有兩個步驟:
words = "The C.I.A. is a department in the U.S. Government."
words = re.sub(r'([A-Z].[A-Z.]*)\.', r'\1', words)
print words
# The C.I.A is a department in the U.S Government.
words = re.sub(r'\.([A-Z])', r'\1', words)
print words
# The CIA is a department in the US Government.
可以有任何單字母縮寫嗎? –
'etc.'呢?如果你只關心大寫單個字母后跟一個點,你可以使用're.sub(r'\ b([AZ])\。',r'\ 1',words)',但這不是一般的解。 –
歸結到這個問題*「你怎麼知道什麼是一個縮略語而不是一個句子?」*一旦你有了答案,那麼你就可以開始構建一個正則表達式。 – zvone