gpt4 book ai didi

regex - VBA排除特殊字符和数字,但保留字符串中的空格

转载 作者:行者123 更新时间:2023-12-03 00:27:44 25 4
gpt4 key购买 nike

我的 Excel 单元格中有文本“abcd 24 ef-gh”。

我需要去掉“24”和“-”,但保留所有字母和空格。

我有一个函数可以循环文本并使用 like 运算符识别字母。由于某种原因,它不排除我在循环之前添加替换语句的“24”和“-”:

Function StripNonAlpha(TextToReplace As String) As String
Dim i As Integer
Dim a, b, c As String
a = Replace(TextToReplace, "-", " ")
For i = 1 To Len(a)
b = Mid(a, i, 1)
If b Like "[A-Z,a-z, ]" Then
c = c & b
End If
Next i
StripNonAlpha = c

End Function

我本来想使用正则表达式而不是这个循环,但是当我发现很多其他语言的示例时,我没有弄清楚与 VBA 一起使用的正则表达式。

欢迎任何正则表达式建议,但我也想知道为什么我的循环没有按预期运行。

最佳答案

使用简单的像这样保留您想要的字符(即删除任何不是 a-zA-Z 或空格的内容)

更新:在正则表达式剥离之前进行编辑,将 - 替换为 ""

Function StripNonAlpha(TextToReplace As String) As String
Dim ObjRegex As Object
Set ObjRegex = CreateObject("vbscript.regexp")
With ObjRegex
.Global = True
.Pattern = "[^a-zA-Z\s]+"
StripNonAlpha = .Replace(Replace(TextToReplace, "-", Chr(32)), vbNullString)
End With
End Function

关于regex - VBA排除特殊字符和数字,但保留字符串中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20736071/

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