1

部分文字列のインデックス位置を見つけたいのですが、部分文字列は長くて表現するのが難しいです(複数行、そしてそれをエスケープする必要があります)ので、正規表現を使用してそれらを一致させ、部分文字列のインデックス、次のような関数を返しますstr.find または str.rfind 、これに関するパッケージのヘルプはありますか?

4

3 に答える 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 に答える