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

原创 羽化飞翔  2020-08-25 16:37  阅读 646 次
摘要:

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

visualbasic(vb.net)中替换所有中间文本的某段字符串的应用场景

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

visualbasic(vb.net)中替换所有中间文本的某段字符串的例子说明

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

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

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

visualbasic(vb.net)中替换所有中间文本的某段字符串的解决方案

    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代码就可以很好的解决我们的问题,我这里是设置了返回值,且不断累加,所以可以精准替换每一个中间文本!

历史上的今天:

本文地址:https://www.huazai186.com/post/230.html
关注我们:请关注一下我们的微信公众号:扫描二维码羽化飞翔的公众号,公众号:yhfx8686
版权声明:本文为原创文章,版权归 羽化飞翔 所有,欢迎分享本文,转载请保留出处!此外,本网站旨在向广大网友提供任何资源的开发、使用、安装教程,所提供的下载服务仅供学习交流探讨,请广大网友学习完成后,24小时内删除相关资源。如果涉及到侵犯版权事宜,请联系删除资源下载信息,谢谢各位的理解与支持!
打赏二维码

发表评论

您必须 登录 才能发表留言!