Получить значение группы в регулярном выражении в Ruby - PullRequest
1 голос
/ 15 ноября 2010

У меня есть следующее регулярное выражение в Ruby:

\<name\>(.+)\<\/name\>

Внутри оператора if, например, так:

if line =~ /\<name\>(.+)\<\/name\>/

Есть ли способ получить значение группы (.+)?

Заранее спасибо!

Ответы [ 2 ]

5 голосов
/ 15 ноября 2010

В переменной $1

3 голосов
/ 15 ноября 2010

Вместо использования регулярных выражений для разбора XML или HTML, используйте настоящий анализатор. Мне нравится Nokogiri:

require 'nokogiri'

doc = Nokogiri::XML('<somecontainingtags><name>blah</name></somecontainingtags>')

# find all occurences
doc.search('//name').map {|n| n.inner_text } # => ["blah"]

# find the first occurance
doc.at('//name').inner_text # => "blah"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...