作者:绿色风
分类:
时间:2022-08-17
浏览:116
楼主 wise |
Q:正则表达式中的Replace和Execute方法有何区别? A:Replace和Execute都可以用来查找替换字符串,但用Execute方法比较少见。本例中用到的 \d+ 表达式,用于匹配一个或多个0-9的数字,包括“.”之类的字符。
Execute方法:以连续数字为分割符,抽取各段文本字符串组成集合。 再通过循环重新连接集合中的所有字符串,得到需要的结果。
- Sub Execute()
- Dim RegEx As Object, RegMatchCollection As Object, RegMatch As Object
- Dim Rng As Range, C As Range, OutPutStr As String
- Set RegEx = CreateObject("vbscript.regexp")
- With RegEx
- .Global = True
- .Pattern = "\d+"
- End With
- Set Rng = ActiveSheet.Range("A2:A8")
- For Each C In Rng
- OutPutStr = ""
- Set RegMatchCollection = RegEx.Execute(C.Value)
- For Each RegMatch In RegMatchCollection
- OutPutStr = OutPutStr & RegMatch
- Next
- C.Offset(0, 1) = OutPutStr
- Next
- Set RegMatchCollection = Nothing
- Set RegEx = Nothing
- Set Rng = Nothing
- End Sub
Replace方法:直接模糊查找替换数字为空。
- Sub Replace()
- Dim RegEx As Object
- Dim Rng As Range, C As Range
- Set RegEx = CreateObject("vbscript.regexp")
- With RegEx
- .Global = True
- .Pattern = "[^\d]+"
- End With
- Set Rng = ActiveSheet.Range("A2:A8")
- For Each C In Rng
- C.Offset(0, 1) = RegEx.Replace(C.Value, "")
- Next
- Set Rng = Nothing
- Set RegEx = Nothing
- End Sub
正则表达式-去数字的两种方法.rar |
2楼 tongliaozyr |
越学习,越发现自已的无知! |
3楼 omnw |
还没接触过正则表达式方面的知识. |
4楼 xyf2210 |
正在学习正则,谢谢了 |
5楼 bluexuemei |
学习` |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一