Ruby Script 13位正则表达式语法

时间:2013-01-31 08:44:46

标签: ruby

我试图让我在here问题中找到的正则表达式工作...所以我把脚本放在一起,但我得到了一些语法错误。请看看我。

require 'yaml'

f =  File.open("file.txt")
content = f.read

r = Regex.new(^(\d{13})?$)
ids = content.scan(r).uniq
puts YAML.dump(ids)

此脚本从文本文件中的数据块中删除13位数字。这是我得到的错误..

ID_Script.rb:7: syntax error, unexpected '^', expecting ')'
r = Regex.new(^(\d{13})?$)
           ^
ID_Script.rb:7: syntax error, unexpected $undefined
r = Regex.new(^(\d{13})?$)

任何帮助将不胜感激。 谢谢

1 个答案:

答案 0 :(得分:3)

您必须将字符串传递给Regex构造函数

r = Regex.new("^(\d{13})?$")

或使用正则表达式文字

r = /^(\d{13})?$/