我需要在regexp的字符串表示和regexp本身之间来回转换。
像这样的:> Regexp.new "\bword\b|other
=> /\bword\b|other/
但是,这样做会导致/\x08word\x08|other/
有什么方法可以做到这一点吗?
最佳答案
使用单引号,或转义反斜杠。
p re = Regexp.new('\bword\b|other') # => /\bword\b|other/
p re = Regexp.new("\\bword\\b|other") # => /\bword\b|other/
p re.to_s # => "(?-mix:\\bword\\b|other)"
p re.inspect # => "/\\bword\\b|other/"
生成的
to_s
字符串可以用作Regexp.new
的参数(正则表达式本身也可以)。关于ruby - 在String和Regexp之间转换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49740644/