Страницы: 1
RSS
Удаление дубликатов в строке при помощи регулярных выражений
 
Всем привет!

Разбираюсь с регулярными выражениями. Запихнул строку в массив и ищу совпадения. При каждой итерации присваиваю паттерн и удаляю дубликаты.
Возник вопрос, как в массиве найти следующую букву, и перейти к ней по индексу?

Большое всем спасибо!
Изменено: vikttur - 18.08.2021 23:53:54
 
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

Сделал без массивов.

Прошу модераторов заменить название темы на: "Удаление дубликатов в строке при помощи регулярных выражений"
Всем большое спаибо!
Страницы: 1
Наверх