我正在研究scrapy项目,并试图解析我的配置
字符串为attr_title
我必须删除' attr _'得到title
。我使用了lstrip(' attr _'),但得到了意想不到的结果。我知道lstrip
可以解决这些问题并删除它们,但很难理解它。
In [17]: "attr.title".lstrip('attr.')
Out[17]: 'itle'
PS:我知道有多种解决方案可以提取字符串我有兴趣了解这一点。
答案 0 :(得分:9)
lstrip
iterates
覆盖结果字符串,直到没有更多的组合与最左边的字符集匹配
下面有一点说明。
In [1]: "attr.title".lstrip('attr.')
Out[1]: 'itle' # Flow --> "attr." --> "t" --> Next char is 'i' which does not match any combination hence, iteration stops & end result ('itle') is returned
In [2]: "attr.tritle".lstrip('attr.')
Out[2]: 'itle' # "attr." --> "t" --> "r" --> Next char is 'i' which does not match any combination hence, iteration stops & end result ('itle') is returned
In [5]: "attr.itratitle".lstrip('attr.')
Out[5]: 'itratitle' # "attr." --> Next char is 'i' which does not match any combination hence, iteration stops & end result ('itratitle') is returned
答案 1 :(得分:5)
"attr.title".lstrip('attr.')
表示"从给定字符串的左侧删除每个a
,t
,t
,r
,.
,直到没有这样的字符为止发生。
然后它接受给定的字符串并移除a
,两个t
,r
,.
和t
,因为它们所有都包含在给定的模式中。
在i
停止,因为它不包含在模式中。