0

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

例如,MyString 是一个字符串

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

如果我需要从该字符串中查找特定值,例如 MCS 级别,是否要搜索“MCS 级别 -->”的位置并找到接下来 2 个字符的值?

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

谢谢!我很感激帮助。我想正确地做到这一点。

4

2 回答 2

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
于 2013-09-16T22:15:37.277 回答
0

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

MCS Level\D+(\d+)

它会给你想要的结果14

正则表达式演示

编辑

示例代码:( 未经测试,给出一个想法)

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 
于 2013-09-17T05:58:19.810 回答