Содержимое YAML отличается от строки? - PullRequest
1 голос
/ 27 июля 2011

Я пытаюсь передать строку из одной функции в другую для анализа в виде регулярного выражения.

В настоящее время, когда я делаю

@match = run_rule({ "subjectline" => "What is the weather like in Mumbai?", "rule" => "[w|W]hat is the weather( like)? in ([^?]+)?"})

Ответ таков:хочу (соответствует отдельным разделам регулярного выражения).

Когда я делаю

@match = run_rule({ "subjectline" => "What is the weather like in Mumbai?", "rule" => rule['rule']['rule']})

, где rule возвращается из YAML

---
rule:
  rule: "[w|W]hat is the weather( like)? in ([^?]+)?"

puts возвращаетточно так же на консоли для

puts rule['rule']['rule']
puts "[w|W]hat is the weather( like)? in ([^?]+)?"

Что происходит?

1 Ответ

1 голос
/ 27 июля 2011

Прекрасно работает для меня, см .:

irb(main):079:0> yaml = <<EOI
irb(main):080:0" ---
irb(main):081:0" rule:
irb(main):082:0"   rule: "[w|W]hat is the weather( like)? in ([^?]+)?"
irb(main):083:0" EOI
=> "---\nrule:\n  rule: \"[w|W]hat is the weather( like)? in ([^?]+)?\"\n"
irb(main):084:0> rule = YAML.load(yaml)
=> {"rule"=>{"rule"=>"[w|W]hat is the weather( like)? in ([^?]+)?"}}
irb(main):085:0> args = { "subjectline" => "What is the weather like in Mumbai?", "rule" => rule['rule']['rule']}
=> {"subjectline"=>"What is the weather like in Mumbai?", "rule"=>"[w|W]hat is the weather( like)? in ([^?]+)?"}
irb(main):086:0> args['subjectline'].match args['rule']
=> #<MatchData "What is the weather like in Mumbai" 1:" like" 2:"Mumbai">

Что-то еще происходит, что вы не показываете нам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...