所以我有一个字符串str = 'yadayada; borg and ; 12for;scion$march.car; end
我正在搜索的关键字符是$
如何返回部分字符串scion$march.car
我曾经在字符串string.find(str,'$')
中查找索引。$
使用str.split
和next
:
>>> s = 'yadayada; borg and ; 12for;scion$march.car; end'
>>> next((x for x in s.split(';') if '$' in x), None) #return None if no match was gound
'scion$march.car'
解释:
s.split(';')
拆分字符串';'
并返回一个列表,现在我们遍历这个列表并返回包含的第一个项目'$'
:
>>> s.split(';')
['yadayada', ' borg and ', ' 12for', 'scion$march.car', ' end']
上面的代码大致相当于:
def solve(strs):
for s in strs.split(';'):
if '$' in s:
return s
...
>>> solve(s)
'scion$march.car'
split()
如上所述可能是最干净的方式。但您也可以使用find()
和rfind()
如下所示
i = s.find('$')
m = s[s.rfind(';', 0, i)+1:s.find(';',i)]
print m
本质上,您在';'
之后找到第一个'$'
,';'
在它之前找到第一个,并提取它们之间的子字符串。