2011-07-13 21 views
2

入力は正規表現です。たとえば、[0-]\sbla\scd\s\^a 変更できない文字列を取得したいとします。例の出力は次のようになります。正規表現の構文解析

bla 
cd 
^a 

これを行うプログラムについて知っている人は誰でも、ソースコードが参考になります。 (それは宿題ではありません:)

+0

'a [b] c'は' a c'、または 'abc'を返すべきですか?そして 'ab {0} c'は' a'c''または 'ac''を返すべきでしょうか? –

+0

@セバスチャンまたは 'abc'それは変わらない文字列です。または 'ab(ab){3}'は何も 'ab'または' ababab'でなければならないのでしょうか? – tobyodavies

+0

特別な意味を持つ文字に基づいて正規表現を再正規化し、残りのトークンを取り、文字列リテラルとして解析することができます。例えば\ \ [abBdDefnrsStv] | \ x [\ dA-Fa-f] {2} | \(\ <!\\\)^| \ $) ' –

答えて

1

正規表現パーサーのコードを見てください。解析中に "変更できない"文字列が得られます。解析ツリーが公開されている場合は、必要なものを持つことができます。 ...

がlibregex :)

私の2セントのようなもののソースを試してみてください、あなた自身のパーサーを書くよりも良いだろう。

関連する問題