如何从Python中的字符串开头删除特殊字符

时间:2011-09-09 07:38:11

标签: python regex string substring

我从XML获取数据,有时可能会在开头包含特殊字符:

  

'这是一个示例标题或%& *我不知道这是否是文本

我尝试过: title[0].isstring() or title[0].isdigit()然后删除该字符。但如果一开始有多个特殊字符,那么如何删除它呢?我需要一个for循环吗?

4 个答案:

答案 0 :(得分:7)

您可以使用正则表达式:

import re
mystring = re.sub(r"^\W+", "", mystring)

这会删除字符串开头的所有非字母数字字符:

<强>解释

^   # Start of string
\W+ # One or more non-alphanumeric characters

答案 1 :(得分:1)

>>> import re
>>> re.sub(r'^\W*', '', "%&*I don't know if this is the text")
"I don't know if this is the text"

#or

>>> "%&*I don't know if this is the text".lstrip("!@#$%^&*()")
"I don't know if this is the text"

答案 2 :(得分:1)

如果您想删除几种特定类型的字符,请使用lstrip()(“左侧条带”)。

例如,如果您要删除任何起始%&*字符,请使用:

actual_title = title.lstrip("%&*")

另一方面,如果你想删除不是某个集合的任何字符(例如字母数字),那么Tim Pietzcker解决方案中指定的正则表达式解决方案可能是最简单的方法

答案 3 :(得分:0)

使用剥离功能从字符串的开头和结尾删除所有特殊字符。 例如

str = ").* this is text .("
str.strip(")(.* ")

Output: 'this is text'

如果要从字符串开头删除,请使用lstrip() 例如。

str = ").* this is text .("
str.lstrip(")(.* ")

Output: 'this is text .('

如果要从字符串末尾删除,请使用rstrip() 例如。

str = ").* this is text .("
str.rstrip(")(.* ")

Output: ').* this is text'