2
入力は正規表現です。たとえば、[0-]\sbla\scd\s\^a
変更できない文字列を取得したいとします。例の出力は次のようになります。正規表現の構文解析
bla
cd
^a
これを行うプログラムについて知っている人は誰でも、ソースコードが参考になります。 (それは宿題ではありません:)
入力は正規表現です。たとえば、[0-]\sbla\scd\s\^a
変更できない文字列を取得したいとします。例の出力は次のようになります。正規表現の構文解析
bla
cd
^a
これを行うプログラムについて知っている人は誰でも、ソースコードが参考になります。 (それは宿題ではありません:)
正規表現パーサーのコードを見てください。解析中に "変更できない"文字列が得られます。解析ツリーが公開されている場合は、必要なものを持つことができます。 ...
がlibregex :)
私の2セントのようなもののソースを試してみてください、あなた自身のパーサーを書くよりも良いだろう。
'a [b] c'は' a c'、または 'abc'を返すべきですか?そして 'ab {0} c'は' a'c''または 'ac''を返すべきでしょうか? –
@セバスチャンまたは 'abc'それは変わらない文字列です。または 'ab(ab){3}'は何も 'ab'または' ababab'でなければならないのでしょうか? – tobyodavies
特別な意味を持つ文字に基づいて正規表現を再正規化し、残りのトークンを取り、文字列リテラルとして解析することができます。例えば\ \ [abBdDefnrsStv] | \ x [\ dA-Fa-f] {2} | \(\ <!\\\)^| \ $) ' –