如何返回字符串的一部分

时间:2013-10-01 18:16:17

标签: python string

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

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

我使用string.find(str,'$')在字符串中找到$的索引。

2 个答案:

答案 0 :(得分: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'

答案 1 :(得分:0)

split()如上所述可能是最干净的方式。但您也可以使用find()rfind()完成此操作

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

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