Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python:用空格填充标点(保留标点)_Python_Regex_Padding - Fatal编程技术网

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):