如何删除VB.NET字符串中的字符

时间:2015-01-24 16:01:46

标签: vb.net string

我有一个VB.NET字符串,我只需要它的一部分。 字符串的结构类似于:

RANDOM DATA 123456 ---BEGIN--- part I need of the string ---END--- RANDOM DATA 123456

我只知道在我需要的部分之前,有“--- BEGIN ---”,之后是“--- END ---”

如何切断所有内容并且只保留“我需要字符串的部分”?切割也很重要--- BEGIN ---和--- END ---

2 个答案:

答案 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(表示“未找到”)