1
我在紅寶石下面的正則表達式:獲取組的值在正則表達式中的Ruby
\<name\>(.+)\<\/name\>
內的if語句,就像這樣:
if line =~ /\<name\>(.+)\<\/name\>/
有沒有什麼辦法讓該組的價值(.+)
?
在此先感謝!
我在紅寶石下面的正則表達式:獲取組的值在正則表達式中的Ruby
\<name\>(.+)\<\/name\>
內的if語句,就像這樣:
if line =~ /\<name\>(.+)\<\/name\>/
有沒有什麼辦法讓該組的價值(.+)
?
在此先感謝!
而不是使用正則表達式解析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"
它是可變$1
我想你是指'=〜',只是我假設的一個小錯字。 – 2010-11-15 03:50:48
@Reese摩爾,固定。 – 2010-11-15 04:13:38
你不應該使用Regex來解析XML或HTML。你應該使用解析器,比如[Nokogiri](http://nokogiri.org)。如果你只是要使用正則表達式,你不需要轉義'<' and '>'。下面的工作就好了,'(。+)<\/name>', –
2010-11-15 04:15:28