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