正则表达式补充—replace替换

正则表达式专栏http://xn--ohqw1hosom5iv8du58cvzk/常用的正则表达式分享_一路向前的小Q的博客-CSDN博客正则表达式专栏_一路向前的小Q的博客-CSDN博客文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言本专栏主要认识与学习正则表达式的用法,可用于网络数据分析、爬虫抓取、验证输入格式等,以便能够较快的进行相关工作!一、专栏目录1、正则表达式基本介绍2、常用的正则表达式3、正则表达式中级运用—replace替换二、测试环境1、vs2019社区版2、程序集:netstandard.dll命名空间:system.Text.Regul...https://blog.csdn..https://blog.csdn.net/weixin_44182128/article/details/122799857

 


目录

 

一、测试环境

二、replace中级

1、replace基础

2、replace中级

(1)match:对于匹配项进行处理

(2)replace:整体输出的常用方法

方法1:Replace(String, String, MatchEvaluator, RegexOptions, TimeSpan)

 方法2:Replace(String, evaluator, 替换个数, 起始位置)

三、参考

四、爬虫项目实践


 

一、测试环境

1、vs2019社区版

2、程序集:netstandard.dll

命名空间:system.Text.RegularExpressions

3、测试语言:VBnet【几乎所有的语言都支持正则表达式,可以相对应学习】

二、replace中级

1、replace基础

可视化的正则表达式测试工具都有一个不可忽略的弊端,那就是:

replace的匹配结果【自定义】替换很难,或者上手很困难

举一个替换的例子:

字符串中同段中,查找big和like,把like放在big后面,再在big like前后添加##

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LiA6Lev5ZCR5YmN55qE5bCPUQ==,size_20,color_FFFFFF,t_70,g_se,x_16

注意:$1表示匹配的第1组,$2表示匹配的第2组,$3表示匹配的第3组

            如果要这样代替使用,必须分组,只换一项,也必须分组

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LiA6Lev5ZCR5YmN55qE5bCPUQ==,size_20,color_FFFFFF,t_70,g_se,x_16

2、replace中级

如果需要更加复杂的替换输出需求,则需要以下代码实现!

(1)match:对于匹配项进行处理

将字符串中匹配到的每个单词前后加上#,然后显示

Imports System.Text.RegularExpressions

Module module1
    Sub Main()
        Dim input As String = "this is good!I like it!"
        Dim pattern As String = "w+"
        Dim out As String = ""
        Dim match As Match = Regex.Match(input, pattern)
        Do While match.Success
            out = out & "#" & match.Value & "#"
            match = match.NextMatch()
        Loop
        MsgBox(out)
    End Sub
End Module

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LiA6Lev5ZCR5YmN55qE5bCPUQ==,size_20,color_FFFFFF,t_70,g_se,x_16

 

(2)replace:整体输出的常用方法

方法1:Replace(String, String, MatchEvaluator, RegexOptions, TimeSpan)

在指定的输入字符串中,使用由 MatchEvaluator 委托返回的字符串替换与指定的正则表达式匹配的所有子字符串。 如果未找到匹配项,则其他参数指定修改匹配操作的选项和超时间隔。

 

Imports System.Collections
Imports System.Text.RegularExpressions

Module module1
    Sub Main()
        Dim words As String = "this is good!I like it!"
        Dim pattern As String = "w+"
        ''设置委托地址
        Dim evaluator As MatchEvaluator = AddressOf matchReplace 
        Try
            MsgBox(Regex.Replace(words, pattern, evaluator, RegexOptions.IgnorePatternWhitespace, TimeSpan.FromSeconds(0.25)))
        Catch e As RegexMatchTimeoutException  ''超时响应
            MsgBox("匹配超时。。。")
        End Try
    End Sub

    ''委托方法,本方法只是在匹配到的内容前后加上#
    Public Function matchReplace(match As Match) As String 
        Dim s As String = match.Value
        Return "#" & s & "#"
    End Function
End Module

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LiA6Lev5ZCR5YmN55qE5bCPUQ==,size_20,color_FFFFFF,t_70,g_se,x_16

 方法2:Replace(String, evaluator, 替换个数, 起始位置)

在指定输入子字符串内,使用委托替换与某个正则表达式模式匹配的字符串(其数目为指定的最大数目)。

【本例实例化正则表达式测试】

从字符串第1个字符开始(字符串起止位置是0),将匹配到的结果的前两项进行替换

Imports System.Collections
Imports System.Text.RegularExpressions

Module module1
    Sub Main()
        Dim words As String = "this is good!I like it!"
        Dim pattern As String = "w+"
        Dim evaluator As MatchEvaluator = AddressOf matchReplace ''设置委托地址
        Dim reg As New Regex(pattern) ''实例化正则表达式
        Try
            ''从字符串第1个字符开始(字符串起止位置是0),替换匹配到的2个结果
            MsgBox(reg.Replace(words, evaluator, 2, 1))
            ''超时响应
        Catch e As RegexMatchTimeoutException
            MsgBox("匹配超时。。。")
        End Try
    End Sub
    ''委托方法,本方法只是在匹配到的内容前后加上#
    Public Function matchReplace(match As Match) As String
        Dim s As String = match.Value
        Return "#" & s & "#"
    End Function
End Module

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LiA6Lev5ZCR5YmN55qE5bCPUQ==,size_20,color_FFFFFF,t_70,g_se,x_16

 

三、参考

更多请见:

Regex.Replace 方法 (System.Text.RegularExpressions) | Microsoft Docs在指定的输入字符串内,使用指定的替换字符串替换与某个正则表达式模式匹配的字符串。In a specified input string, replaces strings that match a regular expression pattern with a specified replacement string.https://docs.microsoft.com/zh-cn/dotnet/api/system.text.regularexpressions.regex.replace?view=net-6.0#System_Text_RegularExpressions_Regex_Replace_System_String_System_String_System_Int32_System_Int32_

四、爬虫项目实践

cefsharp基础爬虫原理与应用

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一路向前的小Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值