所以我有一个字符串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
本质上,您在';'之后找到第一个'$',';'在它之前找到第一个,并提取它们之间的子字符串。