我正在尝试从字符串"@@@@b@@"中删除所有前缀"@"预期输出为"b@@"(不是所有的"@",而只是前缀(如果没有前缀"@",它应该返回原始字符串本身这是代码,我正在尝试:(我正在使用python 2.X(
mylist = []
def remove(S):
mylist.append(S)
j=0
for i in range(len(S)):
if mylist[0][j]=='@':
S = S[:j] + S[j + 1:]
j+=1
return S
else:
return S
break
a = remove("@@@@b@@")
print a
使用lstrip()
返回删除了前导字符的字符串副本。chars 参数是一个字符串,指定要删除的字符集。
>>> "@@@@b@@".lstrip("@")
'b@@'
Python 3.9
有两个新的字符串方法,removesuffix(( 和 removeprefix((
"HelloWorld".removesuffix("World")
输出:"你好">
"HelloWorld".removeprefix("Hello")
输出:"世界">
在 Python 3.9 之前
使用 lstrip(( (见基督徒回答(
小心使用 lstrip 和 rstrip。如果您只是尝试删除前几个字母。lstrip(( 和 rstrip(( 会不断删除字母,直到它到达无法识别的字母。a = "@@@b@@" print(a.lstrip('@@@b'))
输出:上面的输出是一个空字符串,lstrip 剥离了所有内容!
a = "@@@b@@c"
print(a.lstrip('@@@b'))
输出:c
- 使用正则表达式
import re url = 'abcdc.com' url = re.sub('.com$', '', url)
def remove(S): return S[4:] if S.startswith('@@@@') else S
>>> remove('@@@@b@@')
'b@@'
>>> remove('@@@b@@')
'@@@b@@'