Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.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 on rails 带引号的ruby正则表达式_Ruby On Rails_Ruby_Regex - Fatal编程技术网

Ruby on rails 带引号的ruby正则表达式

Ruby on rails 带引号的ruby正则表达式,ruby-on-rails,ruby,regex,Ruby On Rails,Ruby,Regex,我试图为需要替换的字符串部分传递多个正则表达式参数。下面是字符串: str = "stands in hall "Let's go get to first period everyone" Students continue moving to seats." 以下是所需的字符串: str = "stands in hall "Let's go get to first period everyone" Students continue

我试图为需要替换的字符串部分传递多个正则表达式参数。下面是字符串:

str = "stands in hall "Let's go get to first period everyone" Students continue moving to seats."
以下是所需的字符串:

str = "stands in hall "Let's go get to first period everyone" Students continue moving to seats."
这就是我所尝试的:

str.gsub(/'|"/, "'" => "\'", """ => "\"")
这就是我得到的:

"stands in hall \"Let's go get to first period everyone\" Students continue moving to seats."

如何在使用gsub发送两个正则表达式参数时获取引号?

这是一个HTML无法回避的问题

require 'cgi'
CGI.unescape_html(str)

这给了你正确的答案。

根据我对这个问题的评论:


您的更新版本是正确的。斜杠出现在最后一行代码中的唯一原因是它是一个字符串,这样您就不会错误地认为第一个斜杠用于终止字符串。尝试分配输出并打印它:

str1 = str.gsub(/'|"/, "'" => "\'", """ => "\"")
puts str1
当使用
put
打印
str1
时,您将看到斜杠消失了


不同之处在于,irb中的自动评估变量(我假设您正在执行此示例代码)会自动调用
inspect
方法,对于字符串变量,该方法显示整个字符串。

因为我不理解不可回避的字符,所以我找到了另一种解决方案,可能是“轨道”

你能用

我的最终解决方案是这样,而不是凌乱的正则表达式,需要CGI


在替换哈希中,您忘记了
'
后面的分号。@casimimirithippolyte谢谢,我现在用撇号得到单词Let's,但我仍然得到反斜杠。当我取出反斜杠并执行此操作时,
“”=>“”“
irb渲染中没有任何内容。我将对上面的内容进行编辑,以防止进一步混淆,因为您的更新版本是正确的。斜杠出现在最后一行代码中的唯一原因是它是一个字符串,这样您就不会错误地认为第一个斜杠用于终止字符串。请尝试设置str1=str.gsub(/&';|“/,”';“=>”、“=>”\”),然后执行
放置str1
,您将看到斜杠不见了。哦,感谢@mralexlau的澄清!我不知道默认情况下它会打印转义序列,但在视图中会被忽略一次。没问题,区别在于irb中的自动评估变量(这就是我假设您正在执行此示例代码所做的)自动调用
inspect
方法,该方法对于字符串变量显示整个字符串。这是一个更好的解决方案,因为正则表达式非常低效,我会使用此解决方案,但我不确定如何从我创建的循环中传递字符串“我在我的视图中运行,看起来像这样的
,在本例中,描述是字符串。我将尝试修补此解决方案。您没有给任何人任何线索表明这是Rails。下次您可能想标记它并在问题中提及它。