替换字符串中的单词(.NET)

时间:2018-10-08 16:53:37

标签: .net vb.net

我的文字是字符串,

<img src="https://scontent-yyz1-1.xx.fbcdn.net/v/t45.1600-4/43283458_6107883208189_8123813812978581504_n.png?_nc_cat=108&oh=1f88c51fa75c03ec2923655cc0b8e0ce&oe=5C14EE74" height="500"

我只想从字符串中获取URL。换句话说,我想删除<img src="" height="500"来自字符串。

我尝试了以下操作:

Dim cleanString As String = Replace(RichTextBox1.Text, "<img src=""", "").Replace(""" height=""500""", "")

但这不起作用。 cleanstring中没有任何内容;事件在“按钮单击”上执行。

5 个答案:

答案 0 :(得分:1)

将字符串拆分为“”字符。您将获得一个字符串数组:

< img src=

https://scontent-yyz1-1.xx.fbcdn.net/v/t45.1600-4/43283458_6107883208189_8123813812978581504_n.png?_nc_cat=108&oh=1f88c51fa75c03ec2923655cc0b8e0ce&oe=5C14EE74

 height=

500

第二个是您想要的,对吧?

答案 1 :(得分:0)

您尝试过正则表达式吗?

Imports System.Text.RegularExpressions

Module Module1

    Sub Main()

        Dim pattern As String = "https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)"
        Dim input As String = "<img src='https://scontent-yyz1-1.xx.fbcdn.net/v/t45.1600-4/43283458_6107883208189_8123813812978581504_n.png?_nc_cat=108&oh=1f88c51fa75c03ec2923655cc0b8e0ce&oe=5C14EE74' height='500'"

        Dim regex As Regex = New Regex(pattern)
        Dim match As Match = regex.Match(input)

        If (match.Success) Then
            Console.WriteLine(match.Value)
        End If

    End Sub

End Module

答案 2 :(得分:0)

如果,您正在处理的内容将始终具有相同的结构,则可以拆分字符串。

Dim myDelims As String() = New String() { "src=" }
Dim url As String() = RichTextBox1.Text.Split(myDelims, StringSplitOptions.None)[1].Split(" ")[0].Replace(chr(39), "")

这会在字符串输入中查找“ src = ”并获取第二个索引,然后再次对其进行拆分以删除url后的所有多余数据,最后删除讨厌的引号。

请注意,仅用引号将其分开,即如果图像的HTML块之前声明了某些内容(即样式,类),则索引将是错误的。我假设您正在专门浏览HTML中的图像块。

如果第二个索引不存在,此将失败,因此,您可能需要通过try catch块来正确处理该事件。

答案 3 :(得分:0)

使用String.Split()。使用已知的开始部分("https:")分割原始字符串,并丢弃所有其他部分。这是对逻辑位置(2)

的硬编码
Dim parsed As String = "https:" &
    Input.Split(New String() {" ", "https:"}, StringSplitOptions.RemoveEmptyEntries)(2).Trim(ChrW(34))

您可以求值(过滤)字符串数组并获取您感兴趣的字符串。在这种情况下,该字符串包含子字符串"png"。可能是您要寻找的其他任何东西。

Dim output As String() = Input.Split(New String() {" ", "https:"}, StringSplitOptions.RemoveEmptyEntries)
Dim parsed As String = "https:" & output.Where(Function(item) item.Contains("png")).FirstOrDefault()

答案 4 :(得分:0)

替换方法对我有用(如果有人在寻找它)

Dim input As String = "<img src='https://scontent-yyz1-1.xx.fbcdn.net/v/t45.1600-4/43283458_6107883208189_8123813812978581504_n.png?_nc_cat=108&oh=1f88c51fa75c03ec2923655cc0b8e0ce&oe=5C14EE74' height='500'"
Dim output As String = input.Replace(""" height=""500""", "").Replace("<img src=""", "")