Доброй всем пятницы. К сожалению поиск не дал конкретных результатов или похожих примеров. Помогите пожалуйста разобраться с написанием макроса для обработки текстовой строки и вычленению из нее необходимой информации.
Строка может быть двух видов: [текст1][ABCD_**][текст2][текст3]текст4 или [текст1][**-ABCD_**][текст2][текст3]текст4
ABCD - то что нужно вычленить из строки, количество символов неизвестно
В теории достаточно будет сначала обрезать все слева до первого вхождения символа "_", а потом пройтись по полученому куску уже справа на лево до первого вхождения символа "[" или же символа "-". Это в теории, как реализовать это на практике пока даже не знаю в какую сторону копать. Буду рад любой помощи.
Заранее спасибо.
Доброй всем пятницы. К сожалению поиск не дал конкретных результатов или похожих примеров. Помогите пожалуйста разобраться с написанием макроса для обработки текстовой строки и вычленению из нее необходимой информации.
Строка может быть двух видов: [текст1][ABCD_**][текст2][текст3]текст4 или [текст1][**-ABCD_**][текст2][текст3]текст4
ABCD - то что нужно вычленить из строки, количество символов неизвестно
В теории достаточно будет сначала обрезать все слева до первого вхождения символа "_", а потом пройтись по полученому куску уже справа на лево до первого вхождения символа "[" или же символа "-". Это в теории, как реализовать это на практике пока даже не знаю в какую сторону копать. Буду рад любой помощи.
Sub tt() s = "[текст1][ABCD_**][текст2][текст3]текст4" 's = "[текст1][**-ABCD_**][текст2][текст3]текст4" With CreateObject("vbscript.regexp") .Pattern = "[-[]([^-[]*?)_" MsgBox .Execute(s)(0).submatches(0) End With End Sub
[/vba]
[vba]
Код
Sub tt() s = "[текст1][ABCD_**][текст2][текст3]текст4" 's = "[текст1][**-ABCD_**][текст2][текст3]текст4" With CreateObject("vbscript.regexp") .Pattern = "[-[]([^-[]*?)_" MsgBox .Execute(s)(0).submatches(0) End With End Sub
Sub tt() s = "[текст1][ABCD_**][текст2][текст3]текст4" 's = "[текст1][**-ABCD_**][текст2][текст3]текст4" With CreateObject("vbscript.regexp") .Pattern = "[^-[]*?(?=_)" MsgBox .Execute(s)(0) End With End Sub
[/vba]
или даже ещё проще [vba]
Код
Sub tt() s = "[текст1][ABCD_**][текст2][текст3]текст4" 's = "[текст1][**-ABCD_**][текст2][текст3]текст4" With CreateObject("vbscript.regexp") .Pattern = "[^-[]*?(?=_)" MsgBox .Execute(s)(0) End With End Sub