3
如何確定字符串是否以另一個字符串結尾而不管其大小寫?使用字符串#end_with?()但忽略大小寫
filename.end_with?(*%w(.ext1 .e2 .extension))
這個例子只在大小寫匹配的情況下才匹配。不管情況如何匹配?
如何確定字符串是否以另一個字符串結尾而不管其大小寫?使用字符串#end_with?()但忽略大小寫
filename.end_with?(*%w(.ext1 .e2 .extension))
這個例子只在大小寫匹配的情況下才匹配。不管情況如何匹配?
將文件名更改爲小寫,並與小寫擴展名進行比較。
filename.downcase.end_with?(*%w(.ext1 .e2 .extension))
'MAIN.RB'.downcase.end_with?(*%w(.ruby .rb)) # => true
注意,在這種特殊情況下,這是(可能)的罰款,但在總體上是** **沒有足夠的'比較之前downcase'的字符串。例如''DASS「.downcase.ends_with?(」ß「)'永遠不會*爲真,但兩個字符串」DASS「和」daß「*之間的不變大小寫比較應該返回」true「(實際上'casecmp'返回'-1',但這是一個錯誤)。 –
@KonradRudolph,哪個操作對於''和''SS'(或''ss'')產生了正確的結果? – falsetru
在Ruby中?我不知道。但是,Unicode *強制要求*在案例不變的比較中比較真實(原因在於''''''''被定義爲'SS' - 這是德國人的特質)。 Ruby再次實際上並沒有這樣做,但這又是因爲Ruby的字符串處理存在一個錯誤。 –