使用string.text.contains时如何忽略?

时间:2012-12-28 03:23:19

标签: .net vb.net string

我试图弄清楚如何使用.text.contains来检查字符串是否包含另一个字符串。

现在的情况如果我这样做:

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

只有完全相同的情况才会返回匹配。因此,如果用户键入“我的房子很冷”,那就不匹配了。

我该怎么做?如果不可能,我可能只使用正则表达式而不是ignorecase。任何帮助将不胜感激。

9 个答案:

答案 0 :(得分:34)

根据Microsoft,您可以使用IndexOf代替Contains对字符串进行不区分大小写的搜索。因此,当IndexOf方法的结果返回大于-1的值时,这意味着第二个字符串是第一个字符串的子字符串。

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的其他不区分大小写的变体。

答案 1 :(得分:12)

我不是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

答案 2 :(得分:2)

就我个人而言:

item.Text.ToLower().Contains("my house is cold")

你也可以使用ToUpper。

警告:如果您要比较土耳其语或其他语言,ToLower()和ToUpper()也会为“CultureInfo”采用一个选项参数,以确保正确处理不同的语言。 您可以使用上述解决方案,或者您可以按照Microsoft的ToLower文档中的步骤添加CultureInfo,以获取您将尝试操作的语言的ToLower上下文。

ToLower() with CultureInfo documentation

ToUpper() with CultureInfo documentation

答案 3 :(得分:1)

我用.toUpper

解决了这个问题

例如:

Dim UGroup as String = dr.Item(2).ToString().ToUpper
Dim s as String = ds.Item(1).ToString.ToUpper

If s.Contains(UGroup) then MsgBox("Well done!")
Else 
End Sub

与.toLower相同的程序

答案 4 :(得分:0)

这就是我解决使String.Contains不区分大小写的问题。

Dim s as string = "My HoUsE iS cOlD".ToUpper

If s.Contains("MY HOUSE IS COLD") Then Exit Sub

对于我的特定问题,我正在检查的字符串位于TextBox中。

我希望这会有所帮助。

答案 5 :(得分:0)

或者您可以使用这样的RegularExpressions。

首先,导入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

答案 6 :(得分:0)

这个怎么样?

<Runtime.CompilerServices.Extension>
Function InStr(s As String, find As String) As Boolean
    Return s.ToLower.Contains(find.ToLower)
End Function

答案 7 :(得分:0)

使用InStr示例。 &#34;含有&#34;如果以太比较没什么,那就失败了。

&#39;如果我们发现了什么......

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

Beep

End If   

                                               '

答案 8 :(得分:0)

我使用以下代码搜索/确认TEXTBOX1中的字符串是否在“ c:\ testsearch.txt”中。

    Imports System.IO

Private Function sinf(path As String, match As String) As Boolean 
    Dim s As String = File.ReadAllText(path).ToLower
    Return s.Contains(match.ToLower)
End Function

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim st As String
    st = TextBox1.Text
    If sinf("c:\testsearch.txt", st) = True Then 
        MsgBox("Found if")
    Else
        MsgBox("Try again")
    End If
End Sub