我试图弄清楚如何使用.text.contains来检查字符串是否包含另一个字符串。
现在的情况如果我这样做:
Dim myhousestring As String = "My house is cold"
If txt.Text.Contains(myhousestring) Then
Messagebox.Show("Found it")
End If
只有完全相同的情况才会返回匹配。因此,如果用户键入“我的房子很冷”,那就不匹配了。
我该怎么做?如果不可能,我可能只使用正则表达式而不是ignorecase。任何帮助将不胜感激。
答案 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上下文。
答案 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