0

ディレクトリへのパスを含むいくつかの文字列を解析する必要があります。問題は、エスケープされた空白やその他のエスケープされた記号が含まれていることです。例えば:

"/dir_1/dir_2/dir_3/dir/another/dest_dir\ P\&G/"

の前に空白があることに注意してくださいP\&G/

これが私のツリートップ文法です(alpha_digit_specialには先頭に空白が含まれています)

rule alpha_digit_special
  [ a-zA-Z0-9.+&\\]
end

rule path_without_quotes
  ([/] alpha_digit_special*)+ 
end

rule quot_mark
  ["]
end

rule path_with_quotes
  quot_mark path_without_quotes quot_mark
end

rule path
  path_with_quotes / path_without_quotes
end

nilこの文字列を解析した後に取得します。では、文字列にエスケープされた空白が含まれるようにルールを指定するにはどうすればよいでしょうか?

4

2 に答える 2

0

試しました\sか?

test = "dest_dir P&G" 
test.match(/[a-zA-Z0-9_\s\&]+/)
 => #<MatchData "dest_dir P&G">
于 2012-04-09T11:31:02.543 に答える