如何删除Python中特定字符之前的所有字符?

Sar*_*kin 22 python string replace

我想删除指定字符或字符集之前的所有字符(例如):

intro = "<>I'm Tom."
Run Code Online (Sandbox Code Playgroud)

现在我想删除<>之前I'm(或更具体地说I).有什么建议?

Avi*_*Raj 27

使用re.sub.只需将所有字符匹配,I然后将匹配的字符替换为I.

re.sub(r'.*I', 'I', stri)
Run Code Online (Sandbox Code Playgroud)

  • 请注意,您可以在第一个或最后一个`I` re.sub(r'。*?I','I',stri)`之间切换。但是其他答案不能满足这个要求。 (2认同)
  • 选择答案完全取决于您。是的,学习正则表达式对于每个开发人员都是必须的,因为只有很少的语言不使用正则表达式。 (2认同)
  • 缺少“导入重新” (2认同)

Ash*_*kay 14

因为index(char)获得角色的第一个索引,你可以做到string[index(char):].

例如,在这种情况下index("I") = 2,和intro[2:] = "I'm Tom."

  • 实际的例子是:`intro [intro.index('I'):]` (5认同)

Bre*_*rne 5

如果您知道从哪里开始删除的字符位置,您可以使用切片表示法:

intro = intro[2:]
Run Code Online (Sandbox Code Playgroud)

如果您知道要删除的字符,而不是知道从哪里开始,那么您可以使用lstrip()函数:

intro = intro.lstrip("<>")
Run Code Online (Sandbox Code Playgroud)


dua*_*uan 5

str.find可以找到以下字符的索引certain string's first appearance

intro[intro.find('I'):]
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你对我的部分帮助。另外,如果想删除之前/已建立的字符索引的所有字符:`intro[intro.find('I')+1:]` (3认同)
  • 如果字符串中缺少该字符,则这将仅返回输入字符串的最后一个字符,因为“.find”将返回“-1”,而“some_str[-1:]”是“返回从最后一个字符开始的所有字符” ”。 (2认同)