在ruby中,如何删除非单词字符?
这个脚本是一个更大的脚本的一部分,当我运行这个脚本时,我也会打印出“在ruby中,如何删除非单词字符?,ruby,regex,rexml,Ruby,Regex,Rexml,这个脚本是一个更大的脚本的一部分,当我运行这个脚本时,我也会打印出“”。我怎样才能删除这个 我使用了这个正则表达式:m.gsub!(/(?=\S)(\d |\W)/,“”) 但它只删除了字符“” 这是我的脚本: require 'open-uri' require 'rexml/document' include REXML doc = REXML::Document.new(open('http://testnavet.skolverket.se/SusaNavExport/EmilObje
”。我怎样才能删除这个
我使用了这个正则表达式:m.gsub!(/(?=\S)(\d |\W)/,“”)
但它只删除了字符“”
这是我的脚本:
require 'open-uri'
require 'rexml/document'
include REXML
doc = REXML::Document.new(open('http://testnavet.skolverket.se/SusaNavExport/EmilObjectExporter?id=184594606&strId=info.uh.gu.GS5&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
}
啊,所以你想删除HTML标签。如果是,您可以这样做:
str.gsub(/<.+?>/, "")
str.gsub(//,“”)
因此,“Hello world!”变成“Hello world”您是否试图获取
标记之间的值?您将“单词”定义为什么?您要做的是删除非单词字符p
是一个单词字符,所以它仍然保留。我喜欢删除html字符,@AndrewMarshall是的,我知道,伙计..不,它没有。它变成了”
。这是因为它应该是:/
进行非贪婪匹配的地方:+?
。请注意,这是一个基本大小写,转义>字符将无法解决此问题。这就是OP所寻找的吗?只针对那些不知道ruby regexp是不是一个很好的游戏场所的人,应该是:str.gsub!(//, "")... 你忘记了“!”char@SHUMAcupcake请注意,gsub
确实有效,它只是返回结果,而不是像gsub那样修改str
代码>可以。