如何从string中提取数字?
abc = Sheets("02").Range("calc02").Value // value is: Rabat 5% xR = Mid(abc, 7, 1) // Result is: 5
这是好的,但如果内容是:拉巴特50%,或拉巴特100%
我只想提取这个数字,无论是一位,两位还是三位数字。
xR = Mid$(abc, 7) ' Returns 5% or 50% etc xR = Left$(xr, Len(xR)) - 1) ' strips the %
或者,如果你想要xR返回一个数字
xR = Val(Mid$(abc, 7))
使用正则expression式:
var number = Regex.Match(abc, "[0-9]+");
关于什么:
xR = Mid(abc, 7, Len(abc)-7)
假设string总是相同的,这将考虑string的长度来dynamic地返回值。 这将只适用于这种格式,但这听起来像你想要的:)
如果你想要的百分比和前面的字是可变长度,这可能工作:
percent = Right(abc, InStr(StrReverse(abc)," ")-1) xR = Mid(percent, 1, Len(percent)-1)