在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的值?
谢谢!我很感激帮助。我想这样做。
答案 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
。
修改强>
示例代码:(未经测试,提供想法)
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