python:用空格填充标点(保留标点)
用空格填充标点符号的有效方法是什么 输入:python:用空格填充标点(保留标点),python,regex,padding,Python,Regex,Padding,用空格填充标点符号的有效方法是什么 输入: s = 'bla. bla? bla.bla! bla...' 期望输出: s = 'bla . bla ? bla . bla ! bla . . .' 评论: 我不在乎代币之间有多少空格。(但它们最终需要倒塌) 我不想填充所有标点符号。说我只对……感兴趣。,!?() 您可以使用正则表达式匹配感兴趣的标点符号并用空格将其包围,然后使用第二步折叠文档中任意位置的多个空格: s='bla。布拉?呜呜,呜呜!布拉…' 进口稀土 s=re.sub(“(
s = 'bla. bla? bla.bla! bla...'
期望输出:
s = 'bla . bla ? bla . bla ! bla . . .'
评论:
您可以使用正则表达式匹配感兴趣的标点符号并用空格将其包围,然后使用第二步折叠文档中任意位置的多个空格:
s='bla。布拉?呜呜,呜呜!布拉…'
进口稀土
s=re.sub(“([,!?())”,r“\1',s)
s=re.sub('\s{2,}','',s)
印刷品
结果:
bla . bla ? bla . bla ! bla . . .
如果一个空格不存在,这将只添加一个空格,并且不会破坏现有空格或其他空白字符:
s = re.sub('(?<! )(?=[.,!?()])|(?<=[.,!?()])(?! )', r' ', s)
s=re.sub(')(?如果使用python3,请使用maketrans()函数
import string
text = text.translate(str.maketrans({key: " {0} ".format(key) for key in string.punctuation}))
您不希望在最后一个点后有一个空格吗?以下是我不会重复太多代码的版本(我不懂任何Python):