2016-04-11 12 views
-2

reライブラリの機能がどのように機能するか教えていただけたらと思います。pythonのre.finditer()関数の基本的な操作

に理由を私はIDEを使用して関数呼び出しをStep Intoしようとしたが、私は本当にそれが3つの異なるファイル(re.pysre_compile.py、およびsre_parse.py)で機能するように機能行くから始めると何が起こっているのか分かりません私が知りたいのは、ソースコードの基本的な操作が比較(ファジィ検索の実装)であると感じるからです。finditer()の操作回数をn文字で判断できるようにする必要があります。

答えて

1

これは否定できない。正規表現は言語です。したがって、finditerと他のregexp実行関数は、本質的に固定された複雑さを持たない。たとえば、正規表現aは線形であり、a*はありません。(a*)*は偽物です。

誤っているためにEDIT:Pythonはバックトラッキングアルゴリズムを使用します。

+0

どのようにiterableインデックスが見つかったのか知りたいだけです。 horspoolのマッチングアルゴリズムのようなものか、ブルートフォースマッチなどを行っているキャラクターのキャラクターになるかのように、これはオートマトンでトンプソンのアルゴリズムを使用することを意味するでしょうか?ありがとうございました。 –

+0

いいえ、明らかに同じ古いバックトラックを使用しています。より効率的にするために、何らかの種類の文字列検索アルゴリズムを使用しているかどうかは不明です。おそらくない。 – Amadan

+0

説明をありがとうございます。 –

関連する問題