Hi all, here is my way to extract numbers of text .
Can you do it faster without RegExp? 
vb Code:
Option Explicit
Option Base 0
Private Declare Function ArrayPtr Lib "msvbvm60" Alias "VarPtr" (ByRef Ptr() As Any) As Long
Private Declare Sub PutMem4 Lib "msvbvm60" (ByVal Ptr As Long, ByVal Value As Long)
Private Function GetNumbersbyStringI(ByRef sText As String) As String()
Dim intAsc() As Integer
Dim lngAscHeader(5) As Long
Dim lngPos As Long
Dim strNum As String
Dim strTempArr() As String
Dim lngTextLen As Long
Dim Q As Long
lngTextLen = LenB(sText) \ 2 + 1
If lngTextLen > 1 Then
ReDim strTempArr$(0)
lngAscHeader(0) = 1
lngAscHeader(1) = 2
lngAscHeader(3) = StrPtr(sText)
lngAscHeader(4) = lngTextLen
PutMem4 ArrayPtr(intAsc), VarPtr(lngAscHeader(0))
Do Until lngPos = lngTextLen
Do
If intAsc(lngPos) < 48 Then Exit Do
If intAsc(lngPos) > 57 Then Exit Do
strNum = strNum + ChrW$(intAsc(lngPos))
lngPos = lngPos + 1
Loop Until lngPos = lngTextLen
If LenB(strNum) Then
strTempArr(Q) = strNum
strNum = vbNullString
Q = Q + 1
ReDim Preserve strTempArr$(Q)
End If
lngPos = lngPos + 1
Loop
PutMem4 ArrayPtr(intAsc), 0
GetNumbersbyStringI = strTempArr
End If
End Function
vb Code:
Private Sub Form_Load()
Const s As String = "hi 345 vivan 09453 las456 r4n4s 1 lov3 vbf0rum5"
Const sLine As String = "--------------------------------"
Dim vItem As Variant
Debug.Print sLine; "Array", Time$
For Each vItem In GetNumbersbyStringI(s)
Debug.Print vItem
Next vItem
End Sub
Give me advice, I want to improve.
Thanks