删除最后一个字符,如果它是一个反斜杠
是否有一个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