使用正则表达式查找字符串中的字符并与另一个字符进行比较

时间:2015-08-10 10:52:52

标签: ruby regex

这就是我设置的内容:

n = 1
/([1-99])/.match("company1") == n.to_s # => false

如何将/([1-99])/.match("company1")n进行比较,以便获得true

1 个答案:

答案 0 :(得分:2)

您需要访问[MatchData][1]内的匹配文字,并且还需要将正则表达式调整为[1-9][0-9]?以匹配199之间的数字:

  

MatchData是特殊变量$~的类型,是类型    Regexp#match Regexp.last_match返回的对象。它   封装模式匹配的所有结果,结果通常   通过特殊变量$&$'$`$1$2等进行访问。

所以,使用

puts /[1-9][0-9]?/.match("company1")[0] == n.to_s

请参阅demo

如果您需要匹配整个单词编号,请使用\b/\b[1-9][0-9]?\b/