I need to pull the first 3 to 13 characters out of a string, starting at the beginning of the line and ending at the first encounter of whitespace.
The following code I cannot get to work. I often get an “Invalid Procedure” error. Changing the pattern sometimes makes the error go away, but it never results in the match that I need.
Please Help.
EDIT: I found this pattern “/[^ ]*/” which should do what I want (I think), but now when I execute the code I get an error at line strOut = match.SubMatches(0). Any idea why?
' Set the pattern to find the data we would like to test;
re_Name.Pattern = "^xe\-1/1/1"
re_Name.IgnoreCase = True
re_Name.Multiline = True
vLines = Split(strNames, vbcrlf)
For Each strLine in vLines
Set matches = re_Name.Execute(strLine)
For Each match in matches
strOut = match.SubMatches(0)
MsgBox strOut
Next
Next
Examples of what I am searching for:
xe-0/1/1
xe-0/3/2.0
ge-11/2/1
ae0
ae0.3156
Example of what it might like in context:
xe-0/0/0 up up xxxxxxxxxxJxx0/0xToxBBxxx1 x;
ae0.202 up up ;xxxxxx1;xxxxxxxxixxxxx
ge-11/3/0.0 up down Rxxxxxxx RESERVEDing
I think
strOut = match.SubMatches(0)should bestrOut = match.Valueas you’re not capturing any submatches because you’re not using brackets to capture anything.If you just want to match characters up to the first space you could use
\Smatchs any non-space character.