我想重塑一个有特定迹象的句子。更确切地说,我想做以下事情:
sentence = "This is... a test."
reshaped_sentence = "This is ... a test ."
为此,我使用replace()函数:
sentence.replace("...", " ... ").replace(".", " . ")
但我获得了以下内容:
reshaped_sentence = "This is . . . a test ."
我真的需要区分......来。在我的句子中,所以任何想法如何纠正这个问题?
答案 0 :(得分:1)
您可以使用正则表达式匹配3个连续点或用0或更多空格字符括起来的单个点,并将其替换为用空格括起来的匹配值。要删除尾随或初始空格,只需调用strip()
。
请参阅Python demo:
import re
rx = r"\s*(\.{3}|\.)\s*"
s = "This is... a test."
print(re.sub(rx, r" \1 ", s).strip())
# => This is ... a test .
此处\s*(\.{3}|\.)\s*
匹配
\s*
- 零个或多个空格(\.{3}|\.)
- 第1组(来自替换模式的\1
):
\.{3}
- 3点|
- 或\.
- 一个点\s*
- 零个或多个空格请参阅regex demo。