Visual Basic(vb.net)中如何对字符串进行处理,数据采集方案——取中间文本

第1部分:应用场景

作为一个程序员,我们免不了对网站、已有数据包进行处理,

将这些数据进行截断、排版,

然而,华仔对于正则表达式的运用是不熟练的,

而且也听说这个正则匹配在效率上较低,

所以我向一些大神请教,并获得了一个大神写的动态链接库,

可是还是有以下难题:

这个动态链接库要.net4.0以上,而华仔比较喜欢用vs2008进行开发

这个动态链接库并没有报错机制,而且如果遇到需要根据实际情况进行修改,那简直是噩梦

所以,有一个自己的方法过程是很重要的,今天分享给大家,大家可以做自己的动态链接库

第2部分:方法及代码详解

ps:由于篇幅过长,华仔先分享两个,另外两个在我的另一篇文章中《Visual Basic(vb.net)中如何对字符串进行处理,数据采集方案——替换文本

1、取中间文本,通过前后文字进行截取

 rem 取中间文本
 rem PreStr 是原文本;StartStr 是前导文本;EndStr 是结束文本;ReplaceStr 是要替换为的文本(替换后)
 Public Function GetMiddleStr(ByVal PreStr As String, ByVal StartStr As String, ByVal EndStr As String, Optional ByVal ReplaceStr As String = "") As String
        Try
            If InStr(PreStr, StartStr) = 0 Then
                Throw New Exception("前导文本不存在")
            End If
            If InStr(PreStr, EndStr) = 0 Then
                Throw New Exception("结束文本不存在")
            End If
            Dim DealResult As String
            DealResult = Split(Split(PreStr, StartStr)(1), EndStr)(0)
            DealResult = Replace(DealResult, ReplaceStr, "")
            Return DealResult
        Catch ex As Exception
            Throw ex
        End Try
    End Function

2、取所有中间文本,通过前后文字进行截取,将所有符合项都进行呈现

Public Function GetAllMiddleStr(ByVal PreStr As String, ByVal StartStr As String, ByVal EndStr As String, Optional ByVal ReplaceStr As String = "") As String()
        Try
            If InStr(PreStr, StartStr) = 0 Then
                Throw New Exception("前导文本不存在")
            End If
            If InStr(PreStr, EndStr) = 0 Then
                Throw New Exception("结束文本不存在")
            End If
            Dim DealArr() As String
            DealArr = Split(PreStr, StartStr)
            Dim DealArrList As ArrayList = New ArrayList(DealArr)
            DealArrList.RemoveAt(0)
            Dim ReplaceArrList As New ArrayList()
            For n As Integer = 0 To DealArrList.Count - 1
                If InStr(DealArrList(n), EndStr) > 0 Then
                    DealArrList(n) = Split(DealArrList(n), EndStr)(0)
                    DealArrList(n) = Replace(DealArrList(n), ReplaceStr, "")
                Else
                        DealArrList(n + 1) = DealArrList(n) + DealArrList(n + 1)
                    ReplaceArrList.Add(DealArrList(n))
                End If
            Next
            For n As Integer = 0 To RePlaceArrList.Count - 1
                DealArrList.Remove(RePlaceArrList(n))
            Next
            Dim DealResult() As String = DealArrList.ToArray(GetType(String))
            Return DealResult
        Catch ex As Exception
            Throw ex
        End Try
    End Function

第3部分:结论

有很多时候,引用别人的类库可以方便自己的开发,

但是这是针对大公司提供的类库,

因为只有这样,才能及时更新,用着才顺心,

但如果只是一些小功能,且为私人的,

建议就靠自己,方便维护,且一劳永逸。

此外,华仔之所以选择这样处理,

主要是因为对正则表达式不熟,

如果已经熟练的朋友可以忽略哈

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容