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

.net 使用string.text.contains时如何忽略案例?,.net,vb.net,string,.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 只有在完全相同的情况下,它才会返回匹配。因此,如果用户键入“我的房子很冷”,则不匹配 我该怎么做?如果不

我试图弄清楚如何在忽略大小写的同时使用.text.contains检查字符串是否包含另一个字符串

如果我现在这样做:

 Dim myhousestring As String = "My house is cold"
    If txt.Text.Contains(myhousestring) Then
    Messagebox.Show("Found it")
    End If
只有在完全相同的情况下,它才会返回匹配。因此,如果用户键入“我的房子很冷”,则不匹配


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

我不是vb.net程序员,但根据,您可以使用字符串方法
ToUpper()
ToLower()
获取文本的小写/大写值。然后您可以将其与
“我的房子很冷”
“我的房子很冷”
进行比较

根据,您可以使用
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

您还可以使用的其他不区分大小写的变体。

这就是我如何解决使String.Contains不区分大小写的问题的方法

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

If s.Contains("MY HOUSE IS COLD") Then Exit Sub
对于我的特殊问题,我正在检查的字符串位于一个文本框中


我希望这有帮助

或者您可以使用这样的正则表达式

首先,导入正则表达式:

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

就我个人而言,我刚刚使用:

item.Text.ToLower().Contains("my house is cold")
你也可以用图珀

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

这个怎么样

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

函数InStr(s作为字符串,find作为字符串)作为布尔值
返回s.ToLower.Contains(find.ToLower)
端函数

我用.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相同的步骤使用InStr示例。如果ether compare为nothing,则“contains”失败

“如果我们发现了什么

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

Beep

End If   

                                               '

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


啊,这正是我要找的。我知道它们是另一个字符串方法,可以用来比较字符串。非常感谢。我很感激。我更喜欢这个解决方案。这会导致全球化问题,特别是土耳其问题。我会小心使用这种方法。这看起来像是一种过度杀伤力。这会导致全球化问题,特别是土耳其语问题。我会小心使用这种方法。问题似乎没有提到它需要支持土耳其语。。。特别是当我们比较课文时,用英语。。。文化差异比较不会从土耳其语翻译成英语,然后比较,它只是比较字符。对不起,这是一个德语单词。逗号的意思是逗号。所以,“这在我的代码中是唯一重要的。但我删除了它,以免引起混乱。Danke für das+1!我的意思是:谢谢你,在这种情况下不需要+1InStr的第一个参数,你可能想把你的输入参数与问题匹配起来。根据MSDN,我也不认为这是不必要的?
If InStr(1, value, search, vbTextCompare) > 0 Then

Beep

End If   

                                               '
    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