2015-07-24 2 views
0

вот мой код:регулярных выражений извлекая п-значных чисел из строки

Dim sPartIDNumberArray() As String 
Dim strIn as String 

... 

Dim objRegex 
Set objRegex = CreateObject("vbscript.regexp") 
With objRegex 
.Global = True 
.Pattern = "(\d{7})+" 
sPartIDNumberArray = .Execute(strIn) 
End With 

FirstPartID = sPartIDNumberArray(1) 
SecondPartID = sPartIDNumberArray(2) 

Мне нужно извлечь два 7-значные числа из текстовой строки как

Punktschweissen \ 3-Blech \ 1384156 RE und 1375188 ZB RE 20 ЧАСТЬ 1

не должен работать здесь .Execute? мне нужно FirstPartID = 1384156 и SecondPartID = 1375188 Спасибо заранее

ответ

0

Вы не можете присвоить результат .Execute метода массив строк. Он возвращает объект типа IMatchCollection2.

Вот код, который должен работать:

Sub reg() 
    Dim objRegex As Object 
    Dim regexMatches As Object 
    Dim strIn As String 
    Dim FirstPartID As String 
    Dim SecondPartID As String 


    strIn = "Punktschweissen\3-Blech\1384156 RE und 1375188 ZB RE 20 PART 1" 


    Set objRegex = CreateObject("vbscript.regexp") 
    With objRegex 
     .Global = True 
     .Pattern = "(\d{7})+" 
     Set regexMatches = .Execute(strIn) 
    End With 

    FirstPartID = regexMatches(0) 'sPartIDNumberArray(1) 
    SecondPartID = regexMatches(1) 'sPartIDNumberArray(2) 

End Sub 
+0

большое спасибо, это работает отлично! –

Смежные вопросы