visualbasic(vb.net)中字符串处理——替换所有中间文本的某段字符串

第1部分:应用场景

我们在应用程序开发的过程中,免不了与字符串打交道,之前华仔已经分享过提取文本和替换文本,今天增加一个新的,那就是替换所有中间文本中的某些字符串。单一的,我们都知道,replace()方法就可以实现,但是如果是一一坨字符串,有重复的中间文本,而这些重复的中间文本存在某个符号印象我们运用,比如说解序列报错等等,那就需要用今天这个方法了。

第2部分:例子说明

为了便于理解,我这里举个例子跟大家说明:

如下字符串:%9opw,43*    968    %9opw,23*    4133     %9opw,34,324*

我们要把%和*之间的字符串,将,替换掉,因为这个逗号影响了我们的后续操作

第3部分:解决方案

    rem <summary>
    rem  替换所有中间文本的某段字符
    rem  </summary>
    rem  <param name="PreStr">原文本</param>
    rem  <param name="StartStr">前导文本</param>
    rem  <param name="EndStr">结束文本</param>
    rem    <param name="MidStr">需要被替换的字符串</param>
    rem   <param name="ReplaceStr">要替换为的文本</param>
    rem   <param name="RetainStartAndEnd">是否保留前后引导文本</param>
    rem   <returns></returns>
    rem   <remarks></remarks>
    Public Function ReplaceAllMiddleEachStr(ByVal PreStr As String, ByVal StartStr As String, ByVal EndStr As String, ByVal MidStr As String, ByVal ReplaceStr As String, Optional ByVal RetainStartAndEnd As Boolean = False) 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 DealResult As String = Split(PreStr, StartStr)(0)
            Dim ReplaceArrList As New ArrayList()
            For n As Integer = 0 To DealArrList.Count - 1
                If InStr(DealArrList(n), EndStr) > 0 Then
                    DealResult += Replace(Split(DealArrList(n), EndStr)(0), MidStr, ReplaceStr) + Replace(DealArrList(n), Split(DealArrList(n), EndStr)(0), "")
                    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
        
            Return DealResult
        Catch ex As Exception
            Throw ex
        End Try
    End Function

visualbasic(vb.net)中替换所有中间文本的某段字符串的结论

通过以上的visualbasic代码就可以很好的解决我们的问题,我这里是设置了返回值,且不断累加,所以可以精准替换每一个中间文本!

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

请登录后发表评论

    暂无评论内容