我试图从字符串“@@@@ 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
答案 0 :(得分:7)
答案 1 :(得分:0)
def remove(S): return S[4:] if S.startswith('@@@@') else S
>>> remove('@@@@b@@')
'b@@'
>>> remove('@@@b@@')
'@@@b@@'
答案 2 :(得分:0)
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)