В общем надо в элементах двумерного массива удалить все что располагается между /*/. Это надо делать регуляркой, тк содержимое неизвестно и располагается в любом месте строки, а то и не раз.
Как это все сделать?
VBA - [решено] Заменить по регулярному выражению регулярное выражение
-
Iska
Re: VBA - [решено] Заменить по регулярному выражению регулярное выражение
blackeangel, то есть, имея, например:
Код:
в результате должны получить:
Код:
— так?
Update:[/i] может ли искомая подстрока быть пустой, т.е., такой:
Код:
?
Код:
Код: Выделить всё
Мама/ мыла /раму. /Рабы /не мы. Мы н/е ра/бы.в результате должны получить:
Код:
Код: Выделить всё
Мамараму. не мы. Мы нбы.— так?
Update:[/i] может ли искомая подстрока быть пустой, т.е., такой:
Код:
Код: Выделить всё
Мама мы//ла раму.?
-
Iska
Re: VBA - [решено] Заменить по регулярному выражению регулярное выражение
В общем, смотрите:
Код:
Код:
Код: Выделить всё
Sub Sample()
Dim arrStrings(5, 5) As String
Dim i As Integer, j As Integer
Dim objRegExp As New RegExp
…
…
…
objRegExp.Pattern = "/.*?/" ' Или "/.+?/" для непустого шаблона.
For i = LBound(arrStrings, 1) To UBound(arrStrings, 1)
For j = LBound(arrStrings, 2) To UBound(arrStrings, 2)
Do While objRegExp.Test(arrStrings(i, j))
arrStrings(i, j) = objRegExp.Replace(arrStrings(i, j), "")
Loop
Next j
Next i
End Sub-
blackeangel
Re: VBA - [решено] Заменить по регулярному выражению регулярное выражение
Iska, верно мыслите. Да, может быть пустой. То есть шаблон будет где то такой
objRegExp.Paternal = "/.*/"
А вот как заменить это вопрос.
Iska, спасибо, выручили, вся беда была, что не гонял так:
Код:
Делал через if и что то не мур мур.
Спасибо еще раз.
objRegExp.Paternal = "/.*/"
А вот как заменить это вопрос.
Iska, спасибо, выручили, вся беда была, что не гонял так:
Код:
Код: Выделить всё
Do While objRegExp.Test(arrStrings(i, j))Делал через if и что то не мур мур.
Спасибо еще раз.
-
Iska
Re: VBA - [решено] Заменить по регулярному выражению регулярное выражение
Цитата blackeangel:
То есть шаблон будет где то такой
objRegExp.Paternal = "/.*/"
Почти. Именно такой может быть, если гарантированно может быть только ноль или одно вхождение. Если может быть больше одного — такой «жадный» шаблон «сожрёт» всё от первого до последнего символа «/», посему ему нужен квантификатор «?», дабы поиск был не «жадным».
То есть шаблон будет где то такой
objRegExp.Paternal = "/.*/"
VBA - [решено] Заменить по регулярному выражению регулярное выражение
Почти. Именно такой может быть, если гарантированно может быть только ноль или одно вхождение. Если может быть больше одного — такой «жадный» шаблон «сожрёт» всё от первого до последнего символа «/», посему ему нужен квантификатор «?», дабы поиск был не «жадным».