Разбираюсь с регулярными выражениями. Запихнул строку в массив и ищу совпадения. При каждой итерации присваиваю паттерн и удаляю дубликаты. Возник вопрос, как в массиве найти следующую букву, и перейти к ней по индексу?
artemkau88, в Вашем примере заполнена только одна ячейка и не понятно, что Вы хотите на выходе получить. Замените пример на более понятный: что есть и что надо получить.
Формула массива (ФМ) вводится Ctrl+Shift+Enter Memento mori
msi2102, спасибо Вам за совет! Разобрался. Код ниже удаляет дубликаты
Код
Sub Регулярки()
Dim objRegexp As RegExp, myMatch As Match, colMatches As MatchCollection
Dim i, k, myStr As String, CompStr As String, NewStr As String
Set objRegexp = New RegExp
objRegexp.Global = True
objRegexp.IgnoreCase = True
i = 1
myStr = CStr(Cells(1, 1))
While i < Len(myStr)
i = i + 1
objRegexp.Pattern = "" & Mid(myStr, i, 1) & "(" _
& Mid(myStr, i, 1) & "){1,}"
Set colMatches = objRegexp.Execute(myStr)
For k = 0 To colMatches.Count - 1
Set myMatch = colMatches.Item(k)
CompStr = objRegexp.Replace(myMatch, myMatch.SubMatches(0))
NewStr = Replace(myStr, myMatch, CompStr)
myStr = NewStr
Debug.Print NewStr
Next k
Wend
Cells(2, 1) = myStr
End Sub
Сделал без массивов.
Прошу модераторов заменить название темы на: "Удаление дубликатов в строке при помощи регулярных выражений" Всем большое спаибо!