23

.text.contains を使用して大文字と小文字を区別せずに、文字列に別の文字列が含まれているかどうかを確認する方法を見つけようとしています。

現状では、これを行うと:

 Dim myhousestring As String = "My house is cold"
    If txt.Text.Contains(myhousestring) Then
    Messagebox.Show("Found it")
    End If

まったく同じ場合にのみ一致が返されます。したがって、ユーザーが「私の家は寒い」と入力した場合、一致しません。

これどうやってするの?それが不可能な場合は、ignorecase の代わりに正規表現を使用できます。どんな助けでも大歓迎です。

4

9 に答える 9

42

Microsoftによると、文字列の大文字と小文字を区別しない検索をIndexOfの代わりに行うことができますContains。したがって、IndexOfメソッドの結果が より大きい値を返す場合-1、2 番目の文字列が最初の文字列の部分文字列であることを意味します。

Dim myhousestring As String = "My house is cold"
If txt.Text.IndexOf(myhousestring, 0, StringComparison.CurrentCultureIgnoreCase) > -1 Then
    Messagebox.Show("Found it")
End If

大文字と小文字を区別しない他のStringComparisonバリアントを使用することもできます。

于 2012-12-28T03:29:11.487 に答える
15

私は vb.net プログラマーではありませんが、Microsoftによると、文字列メソッドToUpper()またはToLower(). "my house is cold"次に、それをまたはと比較できます"MY HOUSE IS COLD"

Dim myhousestring As String = "MY HOUSE IS COLD"
If txt.Text.ToUpper.Contains(myhousestring) Then
    Messagebox.Show("Found it")
End If
于 2012-12-28T03:27:37.443 に答える
0

または、このように正規表現を使用できます。

まず、RegularExpressions をインポートします。

Imports System.Text.RegularExpressions

次に、このコードを試してください:

Dim match As Match = Regex.Match(Textbox1.text,"My house is cold",RegexOptions.IgnoreCase)
If match.Success Then
   Msgbox(match.Value)
End If
于 2015-12-30T02:00:33.080 に答える
0

InStr の例を使用します。エーテル比較が何もない場合、「含む」は失敗します。

「何か見つけたら…

If InStr(1, value, search, vbTextCompare) > 0 Then

Beep

End If   

                                               '
于 2017-06-23T13:36:18.840 に答える