正则表达式替换(Excel VBA) - 从组中删除空白空间

如何删除返回字符串中有问题的空白区域? 我在Excel中使用单元格内的函数,我有一个字符串,我在其中找到特定的文本并将其移动到同一字符串中的另一个地方。正则表达式替换" title="正则表达式替换">正则表达式替换(Excel VBA) - 从组中删除空白空间

我的结果很好,除了它们包含一个额外的空白,我无法弄清楚如何删除。我相信这对你来说很简单,但我对于正则表达式和学习很陌生。

示例文本字符串:

999999 - Blah Blah Blah 8888 blah blah 

期望的结果是:

999999 (8888) - Blah Blah Blah blah blah 

我的实际效果(注意第3布拉赫额外的空格)

999999 (8888) - Blah Blah Blah blah blah 

这里是我的目前相关代码:

strPattern = "^(\d{6})(\-)(\D+)(\d{4})" 

strReplace = "$1($4) $2$3"

有人能帮我学习如何通过我的strPattern定义和/或strReplace定义来处理这个问题吗?

非常感谢。

回答:

你可以调整你的正则表达式模式之前可选空白字符为一些非数字符号匹配越好:

^(\d{6})(-)(\D*?)\s*(\d{4}) 

^^^^^^

见regex demo

详细

  • ^ - 字符串开头
  • (\d{6}) - 第1组:六位数字
  • (-) - 组2:一个连字符和空格
  • (\D*?) - 组3:任何0+字符比其他数字,但尽可能少为*?量词是懒(该量化图案只尝试,并且当随后的图案不匹配扩)
  • \s* - 0+空白字符
  • (\d{4}) - 4组:四位数字。

以上是 正则表达式替换(Excel VBA) - 从组中删除空白空间 的全部内容, 来源链接: utcz.com/qa/266342.html

回到顶部