使用 Strings.InStr 或 IndexOf 搜索子字符串不会产生任何结果

Search a substring with Strings.InStr or IndexOf produces no result

提问人:Gianfranco Vrech 提问时间:3/30/2023 最后编辑:Gianfranco Vrech 更新时间:3/30/2023 访问量:47

问:

我定义了一个字符串,如下所示:

 Dim str As String = "A.090173.R-G1 00 NR 1,00 5 BAR (desc) * SEE NOTE : Mat. 17K Dim. xx*yy mm"

我需要发现是否存在此子字符串“.090173.R-G” 我试过这个代码:

Dim ssf As String = ".090173.R-G"
Dim Test1 As Integer = InStr(str, ssf)
Dim Test2 As Integer = str.IndexOf(ssf)
Dim Test3 As Boolean = str.Contains(ssf )

但在所有情况下,我都没有有效的结果。 Test1 返回 0 Test2 返回 -1 Test3 错误 怎么了?

字符串 vb.net visual-studio

评论

0赞 Andrew Mortimer 3/30/2023
在字符串文字两边加上引号。
0赞 Gianfranco Vrech 3/30/2023
对不起,我在这里的复制代码中犯了错误。
1赞 Andrew Mortimer 3/30/2023
复制了你的代码,我得到了结果。我分别得到“2”、“1”和“True”。我想知道连字符是否是您这边的特殊字符。
0赞 Gianfranco Vrech 3/30/2023
它可以。我使用 Itext7 从 PDF 文件中读取 str 字符串值。然后我使用 compare metodes 来查找子字符串。如果我从dubugger复制值并粘贴到这里,那么我打开一个新的VisualStudo解决方案,你是对的,它可以工作。
0赞 Gianfranco Vrech 3/30/2023
使用 Regex.Replace(str , “[^\w\@-]”, “”) 解决。包含(ssf)

答: 暂无答案