在vb.net中剪切一部分字符串

时间:2014-04-09 14:03:13

标签: vb.net

我实际上正在编写程序,我想手动复制并粘贴网页源代码,程序应该找到源代码的某个部分并将其从字符串的其余部分中删除。

我找不到如何从文本的其余部分中删除它的方法。

所以我有一个像这样的字符串:

"<b>abcdefgh qwertzuiop thepartineedtocut</b>abcdefght mnbvcxy"

我需要得到:

"thepartineedtocut"

问题在于它并不总是相同的单词,但它周围的单词不会改变。我希望你能理解我。 谢谢。 祝你有愉快的一天。

4 个答案:

答案 0 :(得分:1)

我会使用HtmlAgilityPack来解析html,但也许这种天真的方法就足够了:

如果规则是:&#34; <b>中的最后一个字符串是什么... </b>&#34;:

Dim myString = "<b>abcdefgh qwertzuiop thepartineedtocut</b>abcdefght mnbvcxy"
Dim result As String = Nothing
Dim bTokenStart = myString.IndexOf("<b>", StringComparison.OrdinalIgnoreCase)
If bTokenStart >= 0 Then
    bTokenStart += "<b>".Length
    Dim bTokenEnd = myString.IndexOf("</b>", bTokenStart, StringComparison.OrdinalIgnoreCase)
    If bTokenEnd >= 0 Then
        Dim bToken = myString.Substring(bTokenStart, bTokenEnd - bTokenStart)
        result = bToken.Split({" "}, StringSplitOptions.RemoveEmptyEntries).Last()  ' thepartineedtocut
    End If
End If

答案 1 :(得分:1)

您可以使用正则表达式:

Dim input As String = "<b>abcdefgh qwertzuiop thepartineedtocut</b>abcdefght mnbvcxy"
Dim re As New System.Text.RegularExpressions.Regex("(\w+)</b>")
Console.WriteLine(re.Match(input).Groups(1).Value) 'outputs: thepartineedtocut

此处的规则是:在结束</b>标记之前找到一个单词。

答案 2 :(得分:0)

我建议使用IndexOfMid的组合。

答案 3 :(得分:0)

如果文字永远不会改变,那么:

Dim input As String = "<b>abcdefgh qwertzuiop thepartineedtocut</b>abcdefght mnbvcxy"

input = input.replace("<b>abcdefgh qwertzuiop ","").replace("</b>abcdefght mnbvcxy","")