ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何用正则表达式批量把字符串中的数字两边加上[]号?

如何用正则表达式批量把字符串中的数字两边加上[]号?

作者:绿色风 分类: 时间:2022-08-17 浏览:133
楼主
wise
Q:如何用正则表达式批量把字符串中的数字两边加上[]号?
如字符:123ass123asas123asdasd123asda59487sd,希望的效果[123]ass[123]asas[123]asdasd[123]asda[59487]sd。
A:ALT+F11→插入模块→在模块中输入以下代码:
  1. Sub tt()
  2. Dim reg As Object
  3. Set reg = CreateObject("vbscript.regexp")
  4. Dim str1 As String
  5. Dim str2 As String
  6. With reg
  7.   .Pattern = "(\d+)"
  8.   .Global = 1
  9.   .IgnoreCase = 1
  10. End With
  11. str1 = "123ass123asas123asdasd123asda59487sd"
  12. str2 = reg.Replace(str1, "[$1]")
  13. MsgBox str2
  14. End Sub
2楼
DJ_Soo
我将.Pattern = "(d+)"中的括号去掉了,数字全变成[$1]了.
请问:
1.加不加括号为什么会影响[$1],[$1]是什么意思?
2.除了[$1],还有其他特殊的类似表达么?
我看到另外一个帖子里有[$2]:http://www.exceltip.net/thread-8965-1-1.html

可是没起到什么特殊作用,为什么?
3楼
wise
就是怎么找到包含一个或多个数字的数值(\d+),并替换为此串的内容[$1],即带有[]的内容。

提供replace方法说明:
replace(expr,str),将字符串中匹配expr的部分替换为str。另外在replace方法中,str中可以含有一种变量符号$,格式为$n,代表匹配中被记住的第n的匹配字符串(注意小括号可以记忆匹配)。
4楼
bluexuemei
学习!

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap