Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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筛选器gsub替换\\n_Ruby_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Logstash_Kibana - Fatal编程技术网 elasticsearch,logstash,kibana,Ruby,elasticsearch,Logstash,Kibana" /> elasticsearch,logstash,kibana,Ruby,elasticsearch,Logstash,Kibana" />

Ruby筛选器gsub替换\\n

Ruby筛选器gsub替换\\n,ruby,elasticsearch,logstash,kibana,Ruby,elasticsearch,Logstash,Kibana,我想用“\n”替换“\\n” 我正在使用gsub方法,但无法替换 ruby { code => "@mystring=event.get('stockLines'); @mystring=@mystring.gsub('\\\n', '\n');" } 反斜杠的转义可能有点奇怪 对于常规Ruby脚本,代码为: @mystring = event.get('stockLines').gsub('\\\\\n', '\n') 在logstash配置中,代码似乎也是字符串,因此需要再次转

我想用“\n”替换“\\n”

我正在使用gsub方法,但无法替换

ruby
{

code => "@mystring=event.get('stockLines');
@mystring=@mystring.gsub('\\\n', '\n');"

}

反斜杠的转义可能有点奇怪

对于常规Ruby脚本,代码为:

@mystring = event.get('stockLines').gsub('\\\\\n', '\n')
在logstash配置中,代码似乎也是字符串,因此需要再次转义,即:

ruby
{
code => "@mystring = event.get('stockLines').gsub('\\\\\\\\\\n', '\\n');"
}
您需要在gsub中使用“\n”而不是“\n”。不同的引号表现不同

就你而言:

@mystring.gsub("\\n", "\n")

字符串的两种文字形式(单引号或双引号)的本质区别在于双引号允许转义序列,而单引号不允许

我试过这个,但它不能代替。你确定你是说gsub!。不是gsub。
gsub就地替换<代码>@mystring.gsub!(...);
与执行
@mystring=@mystring.gsub(…)相同。我两个都试过了,但都没有替换。我在字符串中得到了相同的\\n。
ruby-e“foo=”\foo;puts foo;puts foo.gsub(“'\code>,'\n')””
——对我很有用。我正在用问题中提到的logstash脚本编写。它不在那里工作。我不明白为什么除了“ruby”之外还有三个标签在那里。如果它们不相关——我不明白为什么它们会相关——就不应该包括在内。标签用于帮助搜索。如果一位成员想检查有关(例如,
logstash
)的问题,他们会想看到这个问题吗?