1
raise NoSuchStrategyError unless some_string1[1] + some_string2[1] =~ /[RSP]{2}/i

我没有得到 "=~ /[RSP]{2}/i" 部分。

如果你们有时间回答,我将不胜感激。

我的意思是 =~ 在那里做什么?

“/ /i”在那里做什么?

我猜测 /[RSP]{2}/i 会从 [RSP] 中生成所有可能的对。真的吗?那我们为什么需要 / /i 呢?为什么它不会在 irb 中产生对,当我输入 /[RSP]{2}/i 我从 irb 得到的只是

=> /[RSP]{2}/i 

而不是对。

4

1 回答 1

4

这是正则表达式(正则表达式)匹配的快捷方式。它不产生任何对。

=~运算符的意思是“左侧值是否与右侧正则表达式匹配?”

/[RSP]{2}/是一个正则表达式文字。你可以写它而不是Regex.new("[RSP]{2}")

最后,正则表达式文字的尾随/i意味着这个正则表达式应该不区分大小写。

于 2013-02-09T10:37:08.750 回答