如果字符串的最后一个字符是某个特殊字符,是否有一种函数可以将其去除?例如,如果有反斜杠,则需要将其删除;否则不做任何处理。我知道可以使用正则表达式轻松完成此操作,但想知道是否有类似于小型内置函数的东西。
使用 rstrip
函数将指定的字符从字符串右侧删除。
my_string = my_string.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[-1] == '\\':
s = s[:-1]
if s.endswith('\\'):
s = s[:-1]
if s.endswith('\\')
。 - Tim PietzckerstripSlash = lambda strVal: strVal[:-1] if strVal.endswith('\\') else strVal
stripSlash('sample string with slash\\')
没错,rstrip更好。只是想试一下。
my_str.replace(my_char,'')
my_chars = '\\'
my_str = my_str.replace(my_char,'')
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))
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
对于来到这里的C#开发者:
my_string = my_string.TrimEnd('\\');