我可以在ruby中使用正则表达式数组吗?

时间:2018-07-12 14:22:18

标签: arrays ruby regex automated-tests

例如:

record= [#data retrieved from database]
expect=~ [/^69[0-9]*/, /^[0-9]*/, /^[A-Z][a-z]* [A-Z][a-z]*/, /^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[0-9]{2}[0-9]{4}/]

if(record[0]== expect[0])
  puts("Pass")
else
  puts("Fail")
end

如果有更复杂的方法,请告诉我,但我也想知道这样的方法是否可以作为参考。

2 个答案:

答案 0 :(得分:3)

  

我可以在ruby中使用正则表达式数组吗?

是的

  

如果有一种更复杂的方法[测试给定的字符串是否匹配所有正则表达式]?

使用Enumerable#all?

patterns = [/foo/, /bar/]
input = 'baz'
patterns.all? { |pattern| pattern.match?(input) }

match?最近在ruby 2.4中添加。

答案 1 :(得分:0)

您可以尝试使用===运算符,该运算符在遵循正则表达式文字时可以与字符串进行比较。

/^[a-z]*$/ === "HELLO" #=> false
/^[A-Z]*$/ === "HELLO" #=> true

但是我也建议检查=~的文档。