删除String末尾的空格但保留新的行符号

时间:2015-03-17 23:12:56

标签: python regex whitespace removing-whitespace

如何检查任何一点的Python字符串在新行之前是否一个空格?如果确实如此,我必须删除该单个空格,但保留新的线符号。这可能吗?

3 个答案:

答案 0 :(得分:2)

def remspace(my_str):
    if len(my_str) < 2: # returns ' ' unchanged
        return my_str
    if my_str[-1] == '\n':
        if my_str[-2] == ' ':
            return my_str[:-2] + '\n'
    if my_str[-1] == ' ':
        return my_str[:-1]
    return my_str

结果:

>>> remspace('a b c')
'a b c'
>>> remspace('a b c ')
'a b c'
>>> remspace('a b c\n')
'a b c\n'
>>> remspace('a b c \n')
'a b c\n'
>>> remspace('')
''
>>> remspace('\n')
'\n'
>>> remspace(' \n')
'\n'
>>> remspace(' ')
' '
>>> remspace('I')
'I'

答案 1 :(得分:2)

如何更换&#39;的特定实例? \ n&#39;用&#39; \ n&#39;?

s1 = 'This is a test \n'
s1.replace(' \n', '\n') 
>>> 'This is a test\n'

s2 = 'There is no trailing space here\n'
s2.replace(' \n', '\n')
>>> 'There is no trailing space here\n'

答案 2 :(得分:0)

如果要删除多个空格,可以使用正则表达式:

import re

def strip_trailing_space(my_string):
    return re.sub(r' +(\n|\Z)', r'\1', my_string)

def strip_trailing_whitespace(my_string):
    return re.sub(r'[ \t]+(\n|\Z)', r'\1', my_string)