2013-02-09 49 views
1
raise NoSuchStrategyError unless some_string1[1] + some_string2[1] =~ /[RSP]{2}/i 

我沒有看到「=〜/ [RSP] {2}/i」部分。Ruby語法。在下面的例子中,「=〜」,「//i」,「{2}」是做什麼的?

如果你們有時間回答,我會很感激的幫助。

我的意思是在那裏做什麼=?

「/ /我」在那裏做什麼?

我猜測/ [RSP] {2}/i會產生[RSP]中所有可能的配對。真的嗎?爲什麼我們需要/我呢?爲什麼它不產生IRB對,當我輸入/ [RSP] {2} /我所有我從IRB得到的是

=> /[RSP]{2}/i 

,而不是對。

+1

作爲一個方面說明:似乎'SomeString1'是一個變量,對吧?然後它被錯誤地命名。 Ruby中的變量不應該以大寫字母開頭。它們應該以蛇的名字命名:'some_string1'。 – 2013-02-09 10:43:23

+0

編輯SomeString to some_string,謝謝塞爾吉奧! – 2013-02-09 12:15:18

回答

4

這是一個正則表達式(正則表達式)匹配的快捷方式。它不會產生任何配對。

=~運算符的意思是「左邊的值是否匹配右邊的正則表達式?」

/[RSP]{2}/是一個正則表達式。你可以寫它,而不是Regex.new("[RSP]{2}")

最後,在後面的正則表達式意味着這個正則表達式應該不區分大小寫。

+0

謝謝塞爾吉奧! – 2013-02-09 11:51:03

+0

@ SrgioTulentsev如果您還有更多時間:[RSP] {2}有何功能?這個正則表達式是否說「等號的數量應該是2」? – 2013-02-09 12:00:59

+1

@ViktorKaufman:這是正則表達式的語法,「我想要兩個字母,每個字母都應該是'R','S','P'」之一。 – 2013-02-09 12:03:40

相關問題