当前位置:   article > 正文

正则表达式补充—replace替换_正则替换replace

正则替换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:对于匹配项进行处理

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

  1. Imports System.Text.RegularExpressions
  2. Module module1
  3. Sub Main()
  4. Dim input As String = "this is good!I like it!"
  5. Dim pattern As String = "w+"
  6. Dim out As String = ""
  7. Dim match As Match = Regex.Match(input, pattern)
  8. Do While match.Success
  9. out = out & "#" & match.Value & "#"
  10. match = match.NextMatch()
  11. Loop
  12. MsgBox(out)
  13. End Sub
  14. 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 委托返回的字符串替换与指定的正则表达式匹配的所有子字符串。 如果未找到匹配项,则其他参数指定修改匹配操作的选项和超时间隔。

 

  1. Imports System.Collections
  2. Imports System.Text.RegularExpressions
  3. Module module1
  4. Sub Main()
  5. Dim words As String = "this is good!I like it!"
  6. Dim pattern As String = "w+"
  7. ''设置委托地址
  8. Dim evaluator As MatchEvaluator = AddressOf matchReplace
  9. Try
  10. MsgBox(Regex.Replace(words, pattern, evaluator, RegexOptions.IgnorePatternWhitespace, TimeSpan.FromSeconds(0.25)))
  11. Catch e As RegexMatchTimeoutException ''超时响应
  12. MsgBox("匹配超时。。。")
  13. End Try
  14. End Sub
  15. ''委托方法,本方法只是在匹配到的内容前后加上#
  16. Public Function matchReplace(match As Match) As String
  17. Dim s As String = match.Value
  18. Return "#" & s & "#"
  19. End Function
  20. 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),将匹配到的结果的前两项进行替换

  1. Imports System.Collections
  2. Imports System.Text.RegularExpressions
  3. Module module1
  4. Sub Main()
  5. Dim words As String = "this is good!I like it!"
  6. Dim pattern As String = "w+"
  7. Dim evaluator As MatchEvaluator = AddressOf matchReplace ''设置委托地址
  8. Dim reg As New Regex(pattern) ''实例化正则表达式
  9. Try
  10. ''从字符串第1个字符开始(字符串起止位置是0),替换匹配到的2个结果
  11. MsgBox(reg.Replace(words, evaluator, 2, 1))
  12. ''超时响应
  13. Catch e As RegexMatchTimeoutException
  14. MsgBox("匹配超时。。。")
  15. End Try
  16. End Sub
  17. ''委托方法,本方法只是在匹配到的内容前后加上#
  18. Public Function matchReplace(match As Match) As String
  19. Dim s As String = match.Value
  20. Return "#" & s & "#"
  21. End Function
  22. 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基础爬虫原理与应用

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/212313
推荐阅读
相关标签
  

闽ICP备14008679号