4
regexpを使っていくつかの文字列をトークン化する方法に関する質問がたくさんあります。正規表現パターンITSELFをどのようにトークン化するのですか?
しかし、正規表現のパターン自体をトークン化するには、私はその件名にいくつかの投稿があると確信していますが、見つけられません。
例:
^\w$ -> ['^', '\w', '&']
[3-7]* -> ['[3-7]*']
\w+\s\w+ -> ['\w+', '\s', '\w+']
(xyz)*\s[a-zA-Z]+[0-9]? -> ['(xyz)*','\s','[a-zA-Z]+','[0-9]?']
私は、この作品がいくつかregexp
関数が呼び出されたボンネットの下にpythonで行われていると仮定しています。
正規表現は、有限状態機械の略語と考えることができます。http://stackoverflow.com/questions/525004/short-example-of-regular-expression-converted-to-state-machine –
問題は '[-z]と' [az] 'のような構造です - メタコードは、その位置によって、その意味を変えます。他のいくつかのもの: '[*] *'と '[[]'。私は厳密な左から右への解析だけがそうする唯一の方法だと思う。 – usr2564301
BTW Pythonは[boost](http://www.boost.org/)を使っています。 – usr2564301