如何在Python中移除字符串开头的特殊字符
我从XML文件中获取数据,有时候这些数据的开头会有一些特殊字符,比如:
'这是一个示例标题或者 %&*我不知道这段文字是否正确
我尝试用:
title[0].isstring() or title[0].isdigit()
来判断,然后去掉这些字符。但是如果开头有多个特殊字符,我该怎么去掉呢?我需要用循环吗?
4 个回答
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"
1
如果你只想去掉几个特定的字符,可以使用 lstrip()
(也叫“左侧去除”)。
比如说,如果你想去掉开头的 %
、&
或 *
这些字符,你可以这样做:
actual_title = title.lstrip("%&*")
另一方面,如果你想去掉的字符是那些不属于某个特定类别的(比如字母和数字),那么Tim Pietzcker的解决方案中提到的正则表达式方法可能是最简单的选择。
14
你可以使用一个正则表达式:
import re
mystring = re.sub(r"^\W+", "", mystring)
这个表达式会去掉你字符串开头的所有非字母数字字符:
解释:
^ # Start of string
\W+ # One or more non-alphanumeric characters