所以我有一个字符串str = 'yadayada; borg and ; 12for;scion$march.car; end
我正在搜索的关键字符是$
,那么如何返回部分字符串scion$march.car
我使用string.find(str,'$')
在字符串中找到$
的索引。
答案 0 :(得分:5)
使用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'
答案 1 :(得分:0)
split()
如上所述可能是最干净的方式。但您也可以使用find()
和rfind()
完成此操作
i = s.find('$')
m = s[s.rfind(';', 0, i)+1:s.find(';',i)]
print m
基本上,您会在';'
之后找到第一个'$'
,在它之前找到第一个';'
,然后在它们之间提取子字符串。