如果它是反斜杠,请删除最后一个字符

时间:2011-07-05 15:07:02

标签: python string

是否有一个函数来阻止字符串中的最后一个字符,如果它是一些特殊字符?例如,我需要删除反斜杠,如果它在那里,并且什么也不做,如果没有。我知道我可以很容易地使用正则表达式,但想知道是否有类似于内置函数的小东西。

8 个答案:

答案 0 :(得分:107)

使用rstrip从字符串的右侧剥离指定的字符。

my_string = my_string.rstrip('\\')

请参阅:http://docs.python.org/library/stdtypes.html#str.rstrip

答案 1 :(得分:18)

如果您不介意删除所有尾部反斜杠,可以使用string.rstrip()

例如:

x = '\\abc\\'
print x.rstrip('\\')

打印:

\abc

但是这有一个小问题(基于你的问题如何措辞):这将删除所有尾随反斜杠。如果你真的只想剥离最后一个角色,你可以这样做:

if x[-1] == '\\': x = x[:-1]

答案 2 :(得分:8)

如果您只想在多个情况下删除一个反斜杠,请执行以下操作:

s = s[:-1] if s.endswith('\\') else s

答案 3 :(得分:6)

但是,rstrip函数将删除的不仅仅是最后一个字符。它将删除字符串末尾的所有反斜杠。这是一个简单的if语句,只删除最后一个字符:

if s[-1] == '\\':
    s = s[:-1]

答案 4 :(得分:6)

if s.endswith('\\'):
    s = s[:-1]

答案 5 :(得分:2)

或者不那么美丽(不要打败我),但也有效:

stripSlash = lambda strVal: strVal[:-1] if strVal.endswith('\\') else strVal
stripSlash('sample string with slash\\')

是的 - rstrip更好。只是想试试。

答案 6 :(得分:1)

我们可以使用内置功能替换

<强> my_str.replace(my_char, '')

my_chars = '\\'    
my_str = my_str.replace(my_char,'')

这将取代 my_str

中的所有 \

my_str.replace(my_chars,'',i)

my_char = '\\'
my_str = 'AB\CD\EF\GH\IJ\KL'
print ("Original my_str : "+ my_str)
for i in range(8):
    print ("Replace '\\' %s times" %(i))
    print("     Result : "+my_str.replace(my_chars, '',i))

这将取代my_str i 次中的 \ 现在,您可以使用 i

控制要替换它的次数

输出:

Original my_str : AB\CD\EF\GH\IJ\KL
Replace '\' 0 times
     Result : AB\CD\EF\GH\IJ\KL
Replace '\' 1 times
     Result : ABCD\EF\GH\IJ\KL
Replace '\' 2 times
     Result : ABCDEF\GH\IJ\KL
Replace '\' 3 times
     Result : ABCDEFGH\IJ\KL
Replace '\' 4 times
     Result : ABCDEFGHIJ\KL
Replace '\' 5 times
     Result : ABCDEFGHIJKL
Replace '\' 6 times
     Result : ABCDEFGHIJKL
Replace '\' 7 times
     Result : ABCDEFGHIJKL

答案 7 :(得分:0)

对于在这里结束的C#用户:

my_string = my_string.TrimEnd('\\');