我有一个VB.NET字符串,我只需要它的一部分。 字符串的结构类似于:
RANDOM DATA 123456 ---BEGIN--- part I need of the string ---END--- RANDOM DATA 123456
我只知道在我需要的部分之前,有“--- BEGIN ---”,之后是“--- END ---”
如何切断所有内容并且只保留“我需要字符串的部分”?切割也很重要--- BEGIN ---和--- END ---
答案 0 :(得分:2)
这是正则表达式方法。请注意,如果数据中有多个集合,它将查找所有出现的内容。我修改了你的示例字符串来演示这个:
Imports System.Text.RegularExpressions
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim raw As String = "RANDOM DATA 123456 ---BEGIN--- part I need of the string ---END--- RANDOM DATA 123456" & _
"RANDOM DATA 123456 ---BEGIN--- another part I want ---END--- RANDOM DATA 123456" & _
"RANDOM DATA 123456 ---BEGIN--- more stuff I want ---END--- RANDOM DATA 123456"
Dim pattern As String = "---BEGIN---(.*?)---END---"
For Each G As Match In Regex.Matches(raw, pattern)
Dim data As String = G.Groups(1).Value
Debug.Print(data)
Next
End Sub
End Class
答案 1 :(得分:0)
您可以使用IndexOf查找Begin和End字符串的位置以及SubString来提取您需要的部分。
Dim myString As String = "RANDOM DATA 123456 ---BEGIN--- part I need of the string ---END--- RANDOM DATA 123456"
Dim startPos As Integer = myString.IndexOf("---BEGIN---")
Dim endPos As Integer = myString.IndexOf("---END---")
Dim shortString As String = myString.SubString(startPos + 11, endPos - startPos - 11)
如果字符串可能不包含开始字符串和结束字符串,则应检查startPos或endPos是否小于0(表示“未找到”)