Страницы: 1
RSS
Регулярные выражения. Метасимволы. Поиск наиболее полного руководства
 
Всем привет!

Только начал разбираться с регулярками. Наваял гигантский код, спасибо msi2102
Код
Sub Regulyarki()
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

Но, как оказалось, можно написать короче, как это сделал Jack Famous в этой теме в 9 сообщении:
Код
Set REdd = New RegExp:  REdd.Global = True: REdd.Pattern = "([A-Za-zЁёА-я])(?:\1)+"
If REdd.test(vl) Then vl = REdd.Replace(vl, "$1")

Я понял, что я Лопух, и надо углубляться больше в метасимволы. Что можно почитать по ним в наиболее полном виде?

Большое Всем спасибо!
Изменено: vikttur - 26.06.2021 00:42:40
 
https://www.script-coding.com/WSH/RegExp.html
 
Фридл Дж. Регулярные выражения. Библиотека программиста.
Бен Форта Освой самостоятельно регулярные выражения (regexp).
Ян Гойвертс, Стивен Левитан Регулярные выражения. Сборник рецептов
 
Всем большое спасибо! Буду разбираться.
 
чтобы легче было разбираться рассматривайте составление Pattern как процесс программирования, при котором RegExp производит поиск нужных данных в тексте по алгоритму, записанному в Pattern
а по регулярным выражениям (как и по любому языку программирования, где используя абстрактные, но строго определенные конструкции, мы получаем нужные результаты при обработке данных) написаны уже тома... читать-не-перечитать
удачи!
Изменено: Ігор Гончаренко - 19.06.2021 12:29:30
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Наверх