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

2020/08/25 16:37 · VB.NET · 301阅读 · 0评论
阿里云·云小站,新老用户同享,1核2G云服务器低至89元/年,229元/3年;2核4G3M3年639元
摘要:

visualbasic(vb.net)中替换所有中间文本的某段字符串的应用场景 : 我们在应用程序开发的过程中,免不了与字符串打交道,之前华仔已经分享过提取文本和替换文本,今天增加一个新的,那就是替换所有中间文本中的某些字符串。单一的,我们都知道,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
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 羽化飞翔 所有,欢迎分享本文,转载请保留出处!此外,本网站旨在向广大网友提供任何资源的开发、使用、安装教程,所提供的下载服务仅供学习交流探讨,请广大网友学习完成后,24小时内删除相关资源。如果涉及到侵犯版权事宜,请联系删除资源下载信息,谢谢各位的理解与支持!

文件下载

上一篇:
下一篇:
腾讯云618云聚惠活动火热进行中,1核2G-288元/3年,2核4G3M-1288元/3年,2核8G5M-1688元/3年,4核8G5M-1999元/3年

 发表评论


表情