从python中的字符串中删除一组前缀字符

时间:2017-06-22 13:47:54

标签: python

我试图从字符串“@@@@ 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

3 个答案:

答案 0 :(得分:7)

使用lstrip()

  

返回删除了前导字符的字符串副本。 chars 参数是一个字符串,用于指定要删除的字符集。

>>> "@@@@b@@".lstrip("@")
'b@@'

答案 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之前的版本

  1. 使用lstrip()(请参见基督徒的回答)
    使用lstrip和rstrip时要小心。如果您只是想删除前几个字母。 lstrip()和rstrip()会一直删除字母,直到无法识别为止。

      a = "@@@b@@"  
      print(a.lstrip('@@@b'))
    

输出:
输出上方是一个空字符串,lstrip剥离了所有内容!

a = "@@@b@@c"
print(a.lstrip('@@@b'))

输出:c

  1. 使用正则表达式
  import re
  url = 'abcdc.com'
  url = re.sub('\.com$', '', url)