2016-09-30 6 views
0

部分文字列の開始インデックスの代わりに終了インデックスを返す関数はありますか?例えば、Python:文字列の最後からインデックスを返す関数

string = 'the rain in spain stays mainly in the plain' 

string.foo('mainly ')ための代わりstring.index('mainly ')+len('mainly ')を使用することにより、31を返しますか?

+0

の後にスペースを探し、正規表現「主に」あなたは、正規表現または分割を使用して、それを達成_may_ –

+4

などしかし、 '+ len()'を使うともっと簡単になります。なぜあなたはそれを使いたくないのですか? – Lafexlos

+0

もっとクリーンな方法があるのか​​どうか疑問に思っていましたが、 '+ len()'が最善の方法です。 – will

答えて

0
それは簡単に2行で実現することができる

def get_sub_end(s, sub): 
    f = s.find(sub) 
    return f if f == -1 else f + len(sub) 

使用法:

test_str = 'the rain in spain stays mainly in the plain' 

if __name__ == '__main__': 
    print get_sub_end(test_str, "mainly ") # >>> 31 
    print get_sub_end(test_str, "undefined ") # >>> -1 
おそらく
関連する問題