В Excel VBA мне нужно выполнить несколько совпадений регулярных выражений, которые затем удаляют совпадение из строки, сохраняя оставшуюся часть строки.У меня это работает путем последовательного соединения двух переменных и не проверяет соответствие шаблона первым, так как второе совпадение является остатком первого.
Рассмотрим следующие данные:
(2.5.3) A. 100% продукции будет доставлено в течение 3 дней
(2.5.3) B. Возможность доставкипродукт по воздуху.
(2.5.3) C. Поддержка функции xyz
(2.5.3) D. Поставщик должен предоставить обзор сети в соответствии с предложением.
(2.5.3) E. Сеть должна позволять CustomerABC обнаруживать свои устройства.
(2.5.3) F. Использование существующей инфраструктуры CustomerABC должно быть оптимизировано.Возможности CustomerABC будут различаться.
(2.5.3) G. Опишите количество сетевых устройств, требующих запуска центра CustomerABC.
С этими данными я удаляю номера контуров в началестрока, а также любые ссылки на CustomerABC и любые переносы, которые могут появиться несколько раз в строке в любом месте, с возможным прописными и строчными буквами.У меня есть регулярное выражение.Вот код, который я пробую:
Function test(Txt As String) As String
Dim regEx As Object
Dim v1 As String
Dim v2 As String
Dim n As String
n = "CustomerABC"
If regEx Is Nothing Then
Set regEx = CreateObject("VBScript.RegExp")
regEx.Global = True
regEx.IgnoreCase = True
End If
If Len(Txt) > 0 Then
With regEx
' The 1st pattern
.Pattern = "^\(?[0-9.]+\)?"
'If Not .Test(Txt) Then Exit Function
v1 = .Replace(Txt, "")
' The 2nd pattern
.Pattern = n + "(\S*)?(\s+)?"
'If Not .Test(Txt) Then Exit Function
v2 = .Replace(v1, "")
' The result
test = Application.Trim(v2)
End With
End If
End Function
Есть ли способ сделать это лучше, ускорить процесс и иметь переменное количество совпадений / удалений?
Заранее спасибо.