Ruby语法。在下面的例子中,“=〜”,“/ / i”,“{2}”做了什么?

时间:2013-02-09 10:34:35

标签: ruby syntax combinations

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 

而不是成对。

1 个答案:

答案 0 :(得分:4)

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

=~运算符表示“左手值匹配右手正则表达式吗?”

/[RSP]{2}/是一个正则表达式字面值。您可以代替Regex.new("[RSP]{2}")

来编写它

最后,在正则表达式字面值中尾随/i意味着此正则表达式应该不区分大小写。