-3

/ツリートップを持つ文字のペア間ですべてを一致させるにはどうすればよいですか? /エスケープ文字も一致させたいと思います。たとえば、「正規表現」を解析する場合:

/blarg: dup\/md5 [0-9a-zA-Z]{32}/

結果は次のようになります。

blarg: dup\/md5 [0-9a-zA-Z]{32}
4

1 に答える 1

0

/これは、エスケープされたスラッシュを含む2 文字内のすべてに一致する必要があります。DATA __END__すべてを単一のファイルで実行できるように、Ruby の機能を使用しています。

また、解析された式の一部にタグを付けて、それらを関数として使用できることに注意してください。以下の例では、タグを付けinsideました。elements[1]これは、タグ付けされているのではなく、としてアクセスされた可能性もあります。

これは、ツリートップのドキュメントにある文字列の照合と同様に機能します。

require 'treetop'
Treetop.load_from_string DATA.read

parser = RegexParser.new

puts parser.parse('/blarg: dup\/md5 [0-9a-zA-Z]{32}/').inside.text_value

# => blarg: dup\/md5 [0-9a-zA-Z]{32}

__END__
grammar Regex
   rule regex
      '/' inside:('\/' / !'/' .)* '/'
   end
end
于 2014-06-03T14:37:38.347 に答える