【发布时间】:2018-09-19 22:53:29
【问题描述】:
我有一个需要在使用 SQL 之前清理的帐户语句。我使用了 RegEx 模式来删除任何标点符号,并认为我也可以使用它来匹配单词之间过多的空格,但是我的 VBA 脚本的替换部分遇到了问题。
到目前为止我有:
Sub RemoveSpace()
Dim cell As Range
Range("A2:C2").Select
Range(Selection, Selection.End(xlDown)).Select
With CreateObject("vbscript.regexp")
.Pattern = "[\s{2,0}]"
.Global = True
For Each cell In Selection.SpecialCells(xlCellTypeConstants)
cell.Value = .Replace(cell.Value, " ")
Next cell
End With
End Sub
虽然此脚本匹配空格,但它不会仅用一个空格替换它们。我认为发生的情况是 Excel 将其匹配的每个单个空格替换为另一个空格,而不是将多个空格视为“一个”。有没有办法可以删除所有多个空格并用单个空格替换它们?
【问题讨论】:
-
谢谢,效果很好!你能解释一下为什么去掉零和方括号会有所不同吗?
-
见下文。另外,
\s{2,0}是无效模式,请在 regex101.com 尝试一下