Python:用空格填充标点符号(保留标点符号)
问题描述
用空格填充标点符号的有效方法是什么?
输入:
s = 'bla. bla? bla.bla! bla...'
所需输出:
s = 'bla . bla ? bla . bla ! bla . . .'
评论:
- 我不在乎令牌之间有多少空格。(但它们最终需要折叠)
- 我不想填充所有标点符号。假设我只对.,!?()感兴趣。
解决方案
您可以使用正则表达式匹配您感兴趣的标点符号字符,并用空格将它们括起来,然后使用第二步折叠文档中任意位置的多个空格:
s = 'bla. bla? bla.bla! bla...'
import re
s = re.sub('([.,!?()])', r' 1 ', s)
s = re.sub('s{2,}', ' ', s)
print(s)
结果:
bla . bla ? bla . bla ! bla . . .
相关文章