以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助一个算法  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=194395)

--  作者:aidimeng
--  发布时间:2024/12/5 12:57:00
--  求助一个算法
给个字符串 如BZY0909JC001 怎么判断是否包含下面 用| 连接的字符呢?
  bzy|jc|KL.....
包含部分还是全包含?

[此贴子已经被作者于2024/12/5 12:58:08编辑过]

--  作者:有点蓝
--  发布时间:2024/12/5 13:52:00
--  
全包含可以判断,部分没有办法:http://www.foxtable.com/webhelp/topics/1422.htm
--  作者:linyunu
--  发布时间:2024/12/5 15:41:00
--  
Dim inputString As String = "BZY0909JC001"
Dim searchStrings As String = "bzy|jc|KL"
Dim substrings() As String = searchStrings.Split("|")
Dim int As Integer=0
\' 遍历数组中的每个子字符串,检查 是否包含它
For Each substring As String In substrings
If inputString.ToUpper.Contains(substring.ToUpper) Then
int += 1
End If
Next
If int>0 Then
If int = substrings.Length Then
Output.Show("包含全部子字符串")
Else
Output.Show("包含部分子字符串")
End If
Else
Output.Show("不包含任何子字符串")
End If

--  作者:y2287958
--  发布时间:2024/12/5 15:42:00
--  
以下是引用aidimeng在2024/12/5 12:57:00的发言:
给个字符串 如BZY0909JC001 怎么判断是否包含下面 用| 连接的字符呢?
  bzy|jc|KL.....
包含部分还是全包含?

[此贴子已经被作者于2024/12/5 12:58:08编辑过]

Dim 数值 As Integer = regex.Matches ("BZY0909JC001JC".ToUpper , "[" & "bzy|jc|KL".ToUpper & "]+").cast(Of match).Select(Function(元素) 元素.value).Distinct.count

Output.Show(If(数值 = 0, "不包含", If(数值 = "bzy|jc|KL".Split("|").count, "全包含", "部分包含")))

[此贴子已经被作者于2024/12/5 16:04:23编辑过]