在Ruby中获取正则表达式中group的值

时间:2010-11-15 03:44:10

标签: ruby regex

我在Ruby中有以下正则表达式:

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

在if语句中,如下:

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

有没有办法获得小组(.+)的价值?

提前致谢!

2 个答案:

答案 0 :(得分:5)

它位于变量$1

答案 1 :(得分:3)

使用真正的解析器,而不是使用正则表达式来解析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"