如何删除字符串中的特殊字符和字母?
qwert1234*90)! ' this might be my cell value
我必须将其转换为
123490 ' I mean I have to remove everything but keep only the numbers in string
但它应该留出空间!
qwe123 4567*. 90 ' String with spaces
123 4567 90 ' output should be
我找到了vba
Replace
-但是为每个字符写一个替换使我的代码很大。好吧,让我清楚地告诉您,不要向您隐瞒任何东西:qwe123 4567*. 90
'带有空格单元格(1,“A”)的字符串。值123 4567 90
'首先删除字符,并保留空格A1:A3
(对于每个空格,都应插入行并填充该行)
您能告诉我如何删除字符串中除数字和空格以外的所有字符吗?
提前致谢
最佳答案
您需要使用正则表达式。
请参阅以下示例:
Option Explicit
Sub Test()
Const strTest As String = "qwerty123 456 uiops"
MsgBox RE6(strTest)
End Sub
Function RE6(strData As String) As String
Dim RE As Object, REMatches As Object
Set RE = CreateObject("vbscript.regexp")
With RE
.MultiLine = False
.Global = True
.IgnoreCase = True
.Pattern = "([0-9]| )+"
End With
Set REMatches = RE.Execute(strData)
RE6 = REMatches(0)
End Function
说明:
Pattern = "([0-9]| )+"
将匹配包含数字(+
)或([0-9]
)空格(|
)的任何0个或多个组(
)。有关正则表达式的更多信息:
关于vba - 如何删除字符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7384029/