如何编写含数字[0-9]与指定单词的正则表达式?VBA字符串清理求助
VBA正则替换问题解决
你的代码问题出在正则模式上,当前的[0-9,()/-]+\bfoo\b只会匹配数字符号紧跟Foo的情况,但你的需求是分别移除数字和Foo单词,不管它们的位置。
修正后的代码
Public Function Replacement(sInput) As String Dim regex As New RegExp With regex .Global = True .IgnoreCase = True ' 匹配独立的Foo单词,或者任意数字序列 .Pattern = "\bfoo\b|[0-9]+" End With ' 先替换掉目标内容 Dim tempStr As String tempStr = regex.Replace(sInput, "") ' 清理替换后产生的多余空格(首尾+中间多空格) Replacement = WorksheetFunction.Trim(tempStr) End Function
代码说明
- 正则模式
\bfoo\b|[0-9]+:\bfoo\b:匹配独立的Foo单词(\b是单词边界,避免匹配包含Foo的其他单词)|:逻辑或,同时匹配两种规则[0-9]+:匹配任意连续的数字序列
WorksheetFunction.Trim:自动移除字符串首尾空格,并把中间的多个连续空格替换成单个空格,避免替换后出现World这类情况。
测试验证
- 输入
Foo World 4563→ 替换后得到World - 输入
Hello World 435 Foo→ 替换后得到Hello World
内容的提问来源于stack exchange,提问作者steddynha
相关产品推荐
相关产品推荐

