我注意到在 treeview items 内的循环中,当我使用 string.contains 方法与文本框并行输入搜索字符串以突出显示找到的 nondes 时,我不能使用任何通配符,如 * 或 % ...还有其他方法可以使用通配符吗?
我尝试过的是有多个文本框,例如。代码 string.contains(x) 或 string.contains(y) 中的 textbox_x、textbox_y 和多个 string.contains 但这显然不符合我的需求,因为用户可能想要使用多种通配符组合..
答案 0 :(得分:0)
这是一个简单的函数,允许在任何位置使用*
作为小丑
(使用正则表达式,这里也设置为不区分大小写)。
Public Shared Function TestSimplePattern(value As String, pattern As String) As Boolean
If String.IsNullOrEmpty(value) Or String.IsNullOrEmpty(pattern) Then Return False
Dim parts = pattern.Split("*")
Dim rxPattern = String.Join(".*?", parts.Select(Function(item) Regex.Escape(item)).ToArray)
rxPattern = "^" & rxPattern & "$"
Return Regex.IsMatch(value, rxPattern, RegexOptions.IgnoreCase)
End Function
可以这样使用:
TestSimplePattern("VB.NET string.contains using wildcards", "*wildcards") ' true
TestSimplePattern("VB.NET string.contains using wildcards", "*string*using*") ' true
TestSimplePattern("VB.NET string.contains using wildcards", "*string*using") ' false