如何打印任何正则表达式不变?我想将它打印到文件或控制台。是否有一般方法可以为任何可能的正则表达式执行此操作,还是应该为某些情况编写自定义方法?
示例正则表达式模式:
[\x20\-]{0,3}
[0-9]{0,4}\^[^\^]+\^[0-9]+\?"
尝试:
puts URI.unescape("[\\]")
esc = URI.escape("[^\^]+\^[0-9]+\?")
puts esc
unesc = URI.unescape(esc)
puts unesc
答案 0 :(得分:1)
Regexp
类有一个to_s方法,可以完全满足您的需要。
答案 1 :(得分:0)
Regexp.source是正确的答案。这是一个例子:
r = Regexp.new(/[\x20\-]{0,3}[0-9]{0,4}[^0-9]/)
puts r.to_s #PRINTS :: (?-mix:[\x20\-]{0,3}[0-9]{0,4}[^0-9])
puts r.source #PRINTS :: [\x20\-]{0,3}[0-9]{0,4}[^0-9]