我在使用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将其匹配的每个单独空间替换为另一个空格而不是将多个空格视为"一个"。有没有办法可以删除所有的多个空格并用一个空格替换它们?
答案 0 :(得分:1)
[\s{2,0}]
模式匹配任何单个空格{
,2
,,
,0
或}
字符,因为它们位于字符类,在[...]
内。请参阅character class参考。
删除[...]
后,您还需要删除0
,因为您需要{2,}
才能匹配2次或更多次匹配。请参阅limiting quantifier参考。
使用
.Pattern = "\s{2,}"
请参阅regex demo。