如何在VB.NET中查找字符串中的子字符串中的值
在VB.NET中,我需要在较大字符串中的子字符串内找到一个值 例如,MyString是一个字符串如何在VB.NET中查找字符串中的子字符串中的值,vb.net,string,search,substring,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
MyString = "
============================
Channel --> 36
Antenna --> 127
MCS Level --> 14
Bandwidth --> 20
Packet Size --> 4000
11N signal? --> 1
BF Config --> 0
============================"
如果我需要从该字符串中找到一个特定的值,比如MCS level,我是否要搜索“MCS level-->”的位置并找到接下来2个字符的值
或者有没有办法搜索“MCS级别-->%s”并在MyString中找到%s的值
谢谢!我感谢你的帮助。我想正确地执行此操作。对于这个特定的示例,我将首先将字符串按新行拆分,然后再按空格拆分每行(忽略出现的空白)。这就留下了一个锯齿状数组,每行包含每一段非空白文本
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
你也可以试试正则表达式。检查此模式:
MCS Level\D+(\d+)
它将为您提供所需的结果14
编辑
示例代码:(未经测试,给出一个想法)
所以基本上,这会为每一行{“MCS-Level”,“-->”,“14”}生成一个数组,然后返回数组的最后一个值?好方法,谢谢!是的。如果您能够以XML或JSON格式获取输入数据,那就更好了,因为可能有无数种方法可以像这样放大代码。还要注意,即使输入数据中没有“MCS级别”,此函数也会返回0。
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