我在Ruby中有以下正则表达式:
\<name\>(.+)\<\/name\>
在if语句中,如下:
if line =~ /\<name\>(.+)\<\/name\>/
有没有办法获得小组(.+)
的价值?
提前致谢!
答案 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"