打印实际的正则表达式

时间:2015-06-06 01:45:38

标签: ruby regex

如何打印任何正则表达式不变?我想将它打印到文件或控制台。是否有一般方法可以为任何可能的正则表达式执行此操作,还是应该为某些情况编写自定义方法?

示例正则表达式模式:

[\x20\-]{0,3}
[0-9]{0,4}\^[^\^]+\^[0-9]+\?"

尝试:

  1. puts URI.unescape("[\\]")
  2. esc = URI.escape("[^\^]+\^[0-9]+\?") puts esc unesc = URI.unescape(esc) puts unesc

2 个答案:

答案 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]