删除两个子字符串之间的字符串

时间:2021-02-24 10:37:42

标签: string vb.net svg replace remove

我有一个 SVG 文件中的字符串,其中包含这样的图像代码:

<image id="image73" width="100" height="100" xlink:href="unnecsesarrything/>

我正在尝试使用此 vb 代码删除这样的部分

Do Until InStr(text, "<image") = 0
    text = Replace$(text, Mid$(text, InStr(text, "<image"), InStr(text, ">") - InStr(text, "<image") + 10000), "")
Loop

这有效,但在“”,这不是我想要的

我不擅长编程,但正在努力学习。所以我从网上找到了这段代码。如果您能向我展示对我有用的代码,我将不胜感激。谢谢

1 个答案:

答案 0 :(得分:0)

编辑以在此处添加另一个示例:

显示 html 和其中的一些节点的前端代码

<body>
    <form id="form1" runat="server">

        <svg value="adfsafsaf" id="asfdsaf">
            test 123asdfsaf
            <img src="Images/green.png" alt="green" />
            <img src="Images/red.png" alt="red" />
            asdfsafd asdfsafdsafdsaf
            asdfsaf asdfsafsaf
            <p>
                asdfasfsaf
            </p>
            <img src="Images/blue.png" alt="blue" />
        </svg>

    </form>
</body>

代码隐藏

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    Dim imgs As List(Of String) = GetImagesFromHtmlString(Me.form1.InnerText)

    For Each imgTag As String In imgs
        ' do whatever you want with them
    Next

End Sub

Private Function GetImagesFromHtmlString(ByVal htmlString As String) As List(Of String)
    Dim pattern As String = "<(img)\b[^>]*>"
    Dim rgx As New Regex(pattern, RegexOptions.IgnoreCase)
    Dim matches As MatchCollection = rgx.Matches(htmlString)

    Dim result As New List(Of String)()

    For i As Integer = 0 To matches.Count - 1
        result.Add(matches(i).Value)
    Next

    Return result
End Function
相关问题