Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ruby中,如何删除非单词字符?_Ruby_Regex_Rexml - Fatal编程技术网

在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
可以。