私は正規表現のパターンを持っています。これは大量のテキスト(1つの文字列)で使用しました。元のテキストのいくつかの不連続な領域が正規表現にマッチします。今、私はステートマシンを構築しようとしています、テキストを反復して、ある位置のcharに基づいて、そしてこの位置が正規表現マッチの範囲内にあるかどうかに基づいて、Python regex:文字列中の文字が正規表現にマッチした部分文字列の範囲内にあるかどうかをチェックする方法?
RE.finditer(text)を使用すると、すべての部分文字列を見つけることができ、範囲を抽出できます。したがって、タプルのリストがあります。
(1、5) (10、15) (20、55)、 など
この情報を使用して、私の文字列内の文字のインデックスを考えると、私は見るためにアルゴリズムを書くことができますその文字が正規表現文字列の一部である場合。たとえば、文字6を指定すると、スパンのリストを調べて、一致する部分文字列の一部ではないと判断できます。
これを行うには良い方法がありますか?事前に
おかげで、
JW
あなたが(otehrものの中で)トークン化するパーサーFSMを書いているようですそれらがエスケープされていない場合にのみ、文法だけでなく自分のステートマシンを書こうと思っていますか?* antlr/lex *がFSMを作成しますか? – smci
ちょっと、私のレキシ/ yaccはちょっとファジーです:)。 – wk1989
必要なものすべてがエスケープされたカンマを識別子の中にマッチさせる正規表現だった場合、パーサFSMを書く必要はありません。今度は、 'bbbb /、ccccc' *のすべてを1つのトークン、または3つのものとして取り込みたいのですか? – smci