Я следующий учебник по регулярным выражениям в рубин, а метод называется регулярное выражение, которое, кажется, не работаетметод match1.regex, похоже, не работает в рубин
Tutorial
re = /(\w*)\s(\w*),\s?([\w\s]*)/
match1 = str1.match re
match2 = str2.match re
match1.regex # => wsw,s[ws] (this is IRB's unique way of showing regular expressions; it will still work normally)
My console
The regex method the method throws an error
1.9.3-p547 :033 > re = /(\w*)\s(\w*),\s?([\w\s]*)/
=> /(\w*)\s(\w*),\s?([\w\s]*)/
1.9.3-p547 :034 > match1 = str1.match re
=> #<MatchData "Joe Schmo, Plumber" 1:"Joe" 2:"Schmo" 3:"Plumber">
1.9.3-p547 :035 > match2 = str2.match re
=> #<MatchData "Stephen Harper, Prime Minister" 1:"Stephen" 2:"Harper" 3:"Prime Minister">
1.9.3-p547 :036 > match1.regex
NoMethodError: undefined method `regex' for #<MatchData "Joe Schmo, Plumber" 1:"Joe" 2:"Schmo" 3:"Plumber">
from (irb):36
from /home/fernando/.rvm/rubies/ruby-1.9.3-p547/bin/irb:12:in `<main>'
1.9.3-p547 :037 >
Перейдите по шагам, чтобы решить вашу проблему. В сообщении об ошибке говорится, что класс 'match1.class => MatchData' не имеет метода экземпляра' regex'. * [Docs] (http://www.ruby-doc.org/core-2.1.3/MatchData.html) * для этих методов экземпляра класса ('# ==', '# []', ' # begin', '# capture' и т. д.). Нет метода 'regex', но существует метод' regexp', поэтому, похоже, вы ошибочно написали имя метода. Кроме того: было бы полезно включить в ваш ответ 'str1' и' str2', чтобы читатели могли воспроизвести ваши результаты. –