我想从字符串中删除一些文本,只留下数字(公式(
示例
=(3m2*3m(*2/10Worker
这个想法是编写正则表达式,以仅保留"*"或"/"之类的文本和运算符,但要删除所有已定义的单元,例如" M2"或" M3"(Cubic Meters(或从字符串中删除" Worker"。我需要在Excel中写入公式,然后有可能知道公式中的特定含义
中的含义是什么。我的公式如下:
Function xxx(cell As String, _
Optional ByVal IsGlobal As Boolean = True, _
Optional ByVal IsCaseSensitive As Boolean = True) As Variant
'Declaring the object
Dim objRegExp As Object
'Initializing an Instance
Set objRegExp = CreateObject("vbscript.regexp")
'Setting the Properties
objRegExp.Global = IsGlobal
objRegExp.Pattern = "[a-zA-Z^0-9_,-]"
objRegExp.IgnoreCase = Not IsCaseSensitive
'Execute the Replace Method
xxx = Evaluate(objRegExp.Replace(cell, ""))
End Function
,我想知道如何为我的目的写正则。
您可以使用
objRegExp.Pattern = "mdb|(d*[,.]?d+)|[^0-9.*/()+-]+"
,然后
objRegExp.Replace(cell, "$1")
请参阅正则演示。要确保将逗号解析为十进制分离器,请用.
替换它们(您可以使用s = Replace(s, ",", ".")
(。
模式详细信息
-
mdb
-m
随后是数字和单词边界 -
|
-或 -
(d*[,.]?d+)
-第1组(用$1
提及(:任何0 数字,可选的,
或.
-
|
-或 -
[^0-9.*/()+-]+
-1或更多的chars以外的其他字符,.
,/
,(
,)
,+
和-
。也许您想在此处添加,
,在0-9
之后添加。