Нужно сделать замену построки, так как это делает оператор s/// в перле. Подскажите, может где есть уже наработанные коды?
ЗЫ. Не хочется изобретать велосипед.
Taras2 писал(а):replace где,что,на_что
Спасибо всем!
Taras2 писал(а):skiperski писал(а):Вот её фамилие
Stinga Regular Expression Library
А где её найти?
skiperski писал(а):Вот её фамилие
Stinga Regular Expression Library
Attribute VB_Name = "Regular"
Private Enum OptComp
Text
Binary
End Enum
Private Enum OptionRepl
One
Globale
End Enum
Public Function Find(ByVal InputString, RegExpr As String, OptionCompare As OptComp, Optional ByVal Start As Long = 1, Optional ByRef StartPosition As Long, Optional ByRef LengthStr As Long) As Boolean
Rem Поиск шаблона в строке
If (OptionCompare = Binary) Then
Option Compare Binary
Else
Option Compare Text
End If
Find = False
StartPosition = 0
LengthStr = 0
If (InputString <> "" And RegExpr <> "") Then
For i = Start To Len(InputString)
For j = Len(InputString) - i + 1 To 1 Step -1
If (Mid(InputString, i, j) Like RegExpr) Then
Find = True
StartPosition = i
LengthStr = j
Exit Function
End If
Next j
Next i
End If
End Function
Public Function S(ByVal InputString, RegExpr, Replace As String, OptionCompare As OptComp, Optional ByVal Start As Long = 1, Optional OptionReplace As OptionRepl = One, Optional ByRef OutputStr As String = "") As Variant
Rem Замена совпавшего с шаблоном
Rem OptionReplace = One, замена только одного совпадения, результат Boolean
Rem OptionReplace = Globale, замена всех совпадений, результат кол-во замен
If (OptionReplace = Globale) Then
S = 0
Do While (Find(InputString, RegExpr, OptionCompare, Start, StartFind, LengthFind))
S = S + 1
OutputStr = Mid(InputString, 1, StartFind - 1) & Replace & Mid(InputString, StartFind + LengthFind)
InputString = OutputStr
Start = StartFind + 1
Loop
ElseIf (Find(InputString, RegExpr, OptionCompare, Start, StartFind, LengthFind)) Then
S = True
OutputStr = Mid(InputString, 1, StartFind - 1) & Replace & Mid(InputString, StartFind + LengthFind)
Else
S = False
End If
End Function
Сейчас этот форум просматривают: AhrefsBot, SemrushBot, Yandex-бот и гости: 17