gpt4 book ai didi

regex - 如何使用正则表达式将 VBA 中的多个空格替换为单个空格?

转载 作者:行者123 更新时间:2023-12-02 21:17:45 30 4
gpt4 key购买 nike

我有一份帐户对帐单,在使用 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}] 模式匹配任何单个空格、{20} 字符,因为它们位于字符类的 [...] 内部。请参阅character class引用。

删除 [...] 后,您还需要删除 0,因为您需要 {2,} 来匹配 2或多次出现。请参阅limiting quantifier引用。

使用

.Pattern = "\s{2,}"

请参阅regex demo .

关于regex - 如何使用正则表达式将 VBA 中的多个空格替换为单个空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49751608/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com