我想将Ruby中的" - "
字符串转换为可翻译为regexp。我需要有类似的东西:
my_regexp => "\s?-\s?"
但是,我遇到特殊字符的问题:此“\ s”字符未正确显示。我尝试了几种方法。没有成功。
INPUT => OUTPUT
"\s?" => " ?"
"\\s?" => "\\s?"
你知道如何解决这个问题吗?
答案 0 :(得分:3)
\\
只是一个转义\
。
如果你print
,puts
它,你会看到实际的字符串。
>> '\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?/