簡體   English   中英

Ruby中的“ =〜”運算符是什么?

[英]What is the “=~” operator in Ruby?

我在屏幕錄像中看到了這一點,無法弄清楚它是什么。 參考表只是將其與其他運算符組合在一起作為常規模式匹配運算符。

它將字符串與正則表達式匹配。

'hello' =~ /^h/ # => 0

如果沒有匹配,它將返回nil 如果傳遞無效的參數(即左側或右側不正確),它將拋出TypeError或返回false

ruby-doc

str =~ obj => fixnum or nil

匹配-如果obj是一個Regexp,則將其用作與str匹配的模式,並返回匹配開始的偏移位置;如果沒有匹配,則返回nil。 否則,調用obj。=〜,並將str作為參數傳遞。 Object中的默認=〜返回false。

"cat o' 9 tails" =~ /\d/   #=> 7
"cat o' 9 tails" =~ 9      #=> false

好吧,引用是正確的,它是“ matches this regex”運算符。

if var =~ /myregex/ then something end

正如其他答案所述, =~是正則表達式vs字符串匹配運算符。

注意: =~運算符不是可交換的

請考慮以下來自ruby doc網站的注釋,因為我僅看到第一種形式

str =~ regexp 

在其他答案中使用:

注意: str =~ regexpregexp =~ str str =~ regexp不相同。 從命名捕獲組捕獲的字符串僅在第二種情況下才分配給局部變量。

這是第二種形式的文檔: 鏈接

正則表達式字符串匹配。 以下是運算符的詳細列表: http : //phrogz.net/programmingruby/tut_expressions.html#table_7.1

正則表達式字符串匹配:

如果url =〜/google.com/,則為true

您可以將“ =〜”讀為“匹配”。

我相信這是與正則表達式一起使用的模式匹配運算符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM