VBA之正则表达式(23)

您所在的位置:网站首页 vba替换字符串中某个字符前全部字符是什么 VBA之正则表达式(23)

VBA之正则表达式(23)

2024-07-05 09:55| 来源: 网络整理| 查看: 265

实例需求: 待处理字符串:5*s+s[面积s=222m2]+s*5[套s=333m2s]+s+s/s^2 处理规则:保留中括号中的全部字符,将其他部分字符中的s替换数字3 结果为:5*3+3[面积s=222m2]+3*5[套s=333m2s]+3+3/3^2 示例代码如下。

Sub Demo() Dim strWord As String Dim objRegExp As Object Set objRegExp = CreateObject("VBSCRIPT.REGEXP") strWord = "5*s+s[面积s=222m2]+s*5[套s=333m2s]+s+s/s^2" With objRegExp .Global = True .Pattern = "s(?=[^\]]*?(\[|$))" .ignoreCase = True strWord = .Replace(strWord, "3") Debug.Print strWord End With Set objRegExp = Nothing End Sub

【代码解析】 第4行代码创建正则表达式对象。 第5行代码设置初始字符串变量。 第8行代码设置匹配模式。

正则表达式说明[^\]]*?非贪懒匹配非]字符(\[|$)匹配[或者字符串结束符(?=[^\]]*?(\[|$))顺序肯定环视,用于判断字符之后的字符符合指定模式

简要总结需要定位的s的特征是:其后至下一个右括号或者字符串结束符(含)之间,必须存在一个左括号或者字符串结束符。 在这里插入图片描述 第10行代码执行正则替换,将s替换为3。 第11行代码输出结果。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3