我有一份帐户对账单,在使用 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
Run Code Online (Sandbox Code Playgroud)
尽管此脚本匹配空格,但它不会仅用一个空格替换它们。我认为发生的情况是 Excel 将其匹配的每个空格替换为另一个空格,而不是将多个空格视为“一个”。有没有办法可以删除所有多个空格并将它们替换为单个空格?
该[\s{2,0}]模式匹配任何单个空格、{、2、,或字符0,}因为它们位于字符类内部[...]。请参阅字符类参考。
删除 后[...],您还需要删除 ,0因为您需要{2,}匹配 2 个或多个匹配项。请参阅限制量词参考。
使用
.Pattern = "\s{2,}"
Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式演示。
| 归档时间: |
|
| 查看次数: |
7249 次 |
| 最近记录: |