我从XML获取数据,有时可能会在开头包含特殊字符:
'这是一个示例标题或%& *我不知道这是否是文本
我尝试过:
title[0].isstring() or title[0].isdigit()
然后删除该字符。但如果一开始有多个特殊字符,那么如何删除它呢?我需要一个for循环吗?
答案 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'