在ruby中,如何删除非单词字符?

时间:2012-03-03 20:15:38

标签: ruby regex rexml

这个脚本是一个更大的脚本的一部分,当我运行这个脚本时,我也会打印出“<p></p>”。我该如何删除?

我使用了这个正则表达式:m.gsub!(/(?=\S)(\d|\W)/,"")

但它只删除了字符“&lt;”和“/&gt;”

这是我的剧本:

require 'open-uri'
require 'rexml/document'
include REXML

doc = REXML::Document.new(open('http://testnavet.skolverket.se/SusaNavExport/EmilObjectExporter?id=184594606&amp;strId=info.uh.gu.GS5&amp;EMILVersion=1.1').read)

doc.elements.each("//*[name()='ct:text'] | /ns:educationInfo/ns:extensionInfo/gu:guInfoExtensions/gu:guSubject/gu:descriptions/gu:description"){
          |e| m = e.text 
              puts "Description: " + m  
        }

1 个答案:

答案 0 :(得分:1)

啊,所以你要删除HTML标签。如果是这样,你可以这样做:

str.gsub(/<.+?>/, "")

因此,“&lt; div&gt; Hello world!&lt; / div&gt;”成为“Hello world”