2012-01-22 8 views
0

Кто-нибудь знает, как извлекать совпадения в виде строк из функции RegExp.Execute()?регулярные выражения и vba

Позвольте мне показать вам, что я получил до сих пор:

Regex.Pattern = "^[^*]*[*]+" 
Set myMatches = Regex.Execute(temp) 

Я хочу, чтобы объект «myMatches», который держит в руках спички, чтобы быть преобразованным в строку. Я знаю, что на выполнение будет только одно совпадение.

Кто-нибудь знает, как извлечь совпадения из объекта, так как строки, которые будут отображаться, говорят через MsgBox?

ответ

2

Попробуйте это:

Dim sResult As String 

'// Your expression code here... 

sResult = myMatches.Item(0) 
'// or 
sResult = myMatches(0) 

Msgbox("The matching text was: " & sResult) 

Выполнить метод возвращает коллекцию спички и вы можете использовать свойство элемента для извлечения текста с помощью индекса.

Как вы заявили, у вас есть только одно совпадение, тогда индекс равен нулю. Если у вас есть несколько совпадений, вы можете вернуть индекс требуемого соответствия или выполнить цикл по всей коллекции.

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