1

所以我有一个字符串str = 'yadayada; borg and ; 12for;scion$march.car; end

我正在搜索的关键字符是$如何返回部分字符串scion$march.car

我曾经在字符串string.find(str,'$')中查找索引。$

4

2 回答 2

5

使用str.splitnext

>>> 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'
于 2013-10-01T18:18:04.790 回答
0

split()如上所述可能是最干净的方式。但您也可以使用find()rfind()如下所示

i = s.find('$')
m = s[s.rfind(';', 0, i)+1:s.find(';',i)]
print m

本质上,您在';'之后找到第一个'$'';'在它之前找到第一个,并提取它们之间的子字符串。

于 2013-10-01T18:31:26.680 回答