Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用VBA从字符串中删除文本_Regex_Vba - Fatal编程技术网

Regex 使用VBA从字符串中删除文本

Regex 使用VBA从字符串中删除文本,regex,vba,Regex,Vba,我试图从如下值列表中删除文本: 3.5S 4PR 2.5 4 我在VBA中尝试了以下操作: Function StripChar(Txt As String) As String With CreateObject("VBScript.RegExp") .Global = True .Pattern = "\D" StripChar = .Replace(Txt, "") End With End Function 但是,这也会删除列表中的小数点,给出: 35 4 25 4 我的目标是:

我试图从如下值列表中删除文本:

3.5S
4PR
2.5
4
我在VBA中尝试了以下操作:

Function StripChar(Txt As String) As String
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "\D"
StripChar = .Replace(Txt, "")
End With
End Function
但是,这也会删除列表中的小数点,给出:

35
4
25
4
我的目标是:

3.5
4
2.5
4

非常感谢

如果文本字符总是在字符串的数字部分之后,那么您只需使用
Val()
函数返回字符串开头的数字即可。如果没有,并且您想坚持使用正则表达式,那么您可以尝试将模式设置为
(\d+\?(\d?+)
,该模式应该在字符串中的任意位置拾取十进制数