2011-06-24 15 views

回答

1

我不這麼認爲。但是,如果不區分大小寫非常重要,則不應使用Like運算符,而應使用正則表達式。

Dim re As New System.Text.RegularExpressions.Regex("^.+ough$", System.Text.RegularExpressions.RegexOptions.IgnoreCase) 

re.IsMatch("rough") ' True 
re.IsMatch("tough") ' True 
re.IsMatch("rOUGH") ' True 
re.IsMatch("ough") ' False 

還有很多東西需要學習,但基本上.相當於?.*相當於*\d相當於#。您也必須將其包裝在^$之中。正則表達式功能更強大,並將執行您所需要的功能。

如果您打算使用它們,您應該添加Imports System.Text.RegularExpressions。它們也可以編譯並重用以提高效率。

+0

這就是我並不需要太多強大的問題,我需要那麼強大:) –

+0

@dr。邪惡:你能否給我們一個關於這種模式的例子,以及它將在什麼情況下使用? – Ryan

+0

它將由用戶輸入,因爲普通用戶無法編寫正則表達式,但將通配符轉換爲正則表達式仍然很骯髒,但仍然可行。 –

0

即使默認設置爲Compare Binary(區分大小寫),您也可以提供自定義類以確保您區分不區分大小寫的比較。您可以在代碼文件中指定Option Compare

Option Compare Text 

Public Class CaseInsensitiveLikeOperator 
    Public Shared Function IsLike(str As String, pattern As String) As Boolean 
     Return str Like pattern 
    End Function 
End Class 

現在這個工程:

Dim isSame = CaseInsensitiveLikeOperator.IsLike("foo", "Fo?") ' True 

如果默認是Option Compare Text您可以提供兩個類是在安全方面。

也許最好的選擇是學習正則表達式;-)