部分文字列のインデックス位置を見つけたいのですが、部分文字列は長くて表現するのが難しいです(複数行、そしてそれをエスケープする必要があります)ので、正規表現を使用してそれらを一致させ、部分文字列のインデックス、次のような関数を返しますstr.find または str.rfind 、これに関するパッケージのヘルプはありますか?
3 に答える
1
.start()
一致が成功した結果オブジェクト (いわゆるmatch オブジェクト)でメソッドを使用します。
mo = re.search('foo', veryLongString)
if mo:
return mo.start()
一致が成功した場合mo.start()
、検索された文字列内の一致する部分文字列の (最初の) インデックスが表示されます。
于 2011-06-09T09:32:39.530 に答える
0
正規表現「re」パッケージが役立つはずです
于 2010-10-12T03:09:28.583 に答える
0
このようなものがうまくいくかもしれません:
import re
def index(longstr, pat):
rx = re.compile(r'(?P<pre>.*?)({0})'.format(pat))
match = rx.match(longstr)
return match and len(match.groupdict()['pre'])
それで:
>>> index('bar', 'foo') is None
True
>>> index('barfoo', 'foo')
3
>>> index('\xbarfoo', 'foo')
2
于 2010-10-12T04:22:49.343 に答える