如何在VB.NET中的字符串中的子字符串中查找值

时间:2013-09-16 21:46:02

标签: vb.net string search substring

在VB.NET中,我需要在较大字符串中的子字符串中找到一个值。

例如,MyString是一个字符串

MyString = "
============================
Channel      -->  36
Antenna      -->  127
MCS Level    -->  14
Bandwidth    -->  20
Packet Size  -->  4000
11N signal?  -->  1
BF Config    -->  0
============================"

如果我需要找到一个特定的值,比如该字符串中的MCS级别,我是否要搜索“MCS Level - >”的位置并查找下两个字符的值?

或者有没有办法搜索“MCS级别 - >%s”并在MyString中找到%s的值?

谢谢!我很感激帮助。我想这样做。

2 个答案:

答案 0 :(得分:1)

对于这个特定的例子,我首先用新行分割字符串,然后再用空格分割每一行(忽略空出现)。这会留下一个锯齿状的数组,每行包含每一段非空白文本。

Function GetMcsLevel(myString As String) As Integer
    For Each line As String In MyString.Split(Environment.NewLine)
        Dim pieces() As String = line.Split(New Char() {" "c}, StringSplitOptions.RemoveEmptyEntries)   
        If pieces.First() = "MCS Level" Then
            Return Integer.Parse(pieces.Last())
        End If
    Next
End Function

答案 1 :(得分:0)

您也可以尝试正则表达式。检查这种模式:

MCS Level\D+(\d+)

它会为您提供所需的结果14

Regex Demo

修改

示例代码:未经测试,提供想法)

Dim mcol as MatchCollection = System.Text.RegularExpression.Regex.Matches(MyString,"MCS Level\D+(\d+)")

for each m as match in mcol
   Debug.Print("MCS Level is : " & m.ToString())
Next