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

是否有一个function,如果它是一些特殊的字符chompstring中的最后一个字符? 例如,如果在那里,我需要删除反斜杠,如果没有,则不做任何事情。 我知道我可以很容易地用正则expression式,但不知道是否有一个像这样的小内置函数。

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

 my_string = my_string.rstrip('\\') 

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

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

例如:

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

打印:

 \abc 

但是有一个小问题(根据你的问题的措辞):这将去除所有尾随反斜杠。 如果你真的只想要最后一个字符被剥离,你可以做这样的事情:

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

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

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

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

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

或者不那么美丽(不要打我),但也可以工作:

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

是的 – rstrip更好。 只是想尝试。

我们可以使用内置的函数replace

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中replace\ i次现在,您可以控制要用ireplace它的次数

输出:

 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