如何在ruby中将“\ s”显示为字符串

时间:2014-07-23 16:02:11

标签: ruby-on-rails ruby regex

我想将Ruby中的" - "字符串转换为可翻译为regexp。我需要有类似的东西:

my_regexp => "\s?-\s?"

但是,我遇到特殊字符的问题:此“\ s”字符未正确显示。我尝试了几种方法。没有成功。

INPUT => OUTPUT
"\s?" => " ?"
"\\s?" => "\\s?"

你知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

\\只是一个转义\

如果你printputs它,你会看到实际的字符串。

>> '\s'  # == "\\s"
=> "\\s"
>> puts '\s'
\s
=> nil

BTW,"\s"(不是'\s')是空白" "的另一种表示形式:

>> "\s" == " "
=> true

答案 1 :(得分:1)

最有可能的是,你所看到的是IRB如何显示价值的结果。你的第二个例子是正确的(实际结果只包含一个斜杠,你可以通过它创建一个新的Regexp对象来确认):

>> "\\s?"
"\\s?"
>> puts "\\s?"
\s?
>> Regexp.new "\\s?"
/\s?/