Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Заменить по регулярному выражению регулярное выражение (http://forum.oszone.net/showthread.php?t=329418)

blackeangel 30-08-2017 12:48 2761476

Заменить по регулярному выражению регулярное выражение
 
В общем надо в элементах двумерного массива удалить все что располагается между /*/. Это надо делать регуляркой, тк содержимое неизвестно и располагается в любом месте строки, а то и не раз.
Как это все сделать?

Iska 30-08-2017 14:09 2761491

blackeangel, то есть, имея, например:
Код:

Мама/ мыла /раму. /Рабы /не мы. Мы н/е ра/бы.
в результате должны получить:
Код:

Мамараму. не мы. Мы нбы.
— так?

Update: может ли искомая подстрока быть пустой, т.е., такой:
Код:

Мама мы//ла раму.
?

Iska 30-08-2017 14:37 2761499

В общем, смотрите:
Код:

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 30-08-2017 14:38 2761500

Iska, верно мыслите. Да, может быть пустой. То есть шаблон будет где то такой
objRegExp.Paternal = "/.*/"
А вот как заменить это вопрос.

Iska, спасибо, выручили, вся беда была, что не гонял так:
Код:

Do While objRegExp.Test(arrStrings(i, j))
Делал через if и что то не мур мур.
Спасибо еще раз.

Iska 30-08-2017 14:59 2761508

Цитата:

Цитата blackeangel
То есть шаблон будет где то такой
objRegExp.Paternal = "/.*/" »

Почти. Именно такой может быть, если гарантированно может быть только ноль или одно вхождение. Если может быть больше одного — такой «жадный» шаблон «сожрёт» всё от первого до последнего символа «/», посему ему нужен квантификатор «?», дабы поиск был не «жадным».


Время: 09:35.

Время: 09:35.
© OSzone.net 2001-