Regular Expressions във VB6 - възможно е!

2 отговора 93 прегледа
#1

Regular Expressions във VB6 - възможно е!

[линк]


Function RegExp(myPattern As String, myString As String)
'Create objects.
Dim objRegExp As RegExp
Dim objMatch As Match
Dim colMatches As MatchCollection
Dim RetStr As String

' Create a regular expression object.
Set objRegExp = New RegExp

'Set the pattern by using the Pattern property.
objRegExp.Pattern = myPattern

' Set Case Insensitivity.
objRegExp.IgnoreCase = True

'Set global applicability.
objRegExp.Global = True

'Test whether the String can be compared.
If (objRegExp.Test(myString) = True) Then

'Get the matches.
Set colMatches = objRegExp.Execute(myString) ' Execute search.

For Each objMatch In colMatches ' Iterate Matches collection.
RetStr = RetStr & "Match found at position "
RetStr = RetStr & objMatch.FirstIndex & ". Match Value is '"
RetStr = RetStr & objMatch.Value & "'." & vbCrLf
Next
Else
RetStr = "String Matching Failed"
End If
RegExp = RetStr
End Function

---
MsgBox(TestRegExp("is.", "IS1 is2 IS3 is4"))
---

Преди да го изпълните, добавете "Microsoft VBScript Regular Expressions 5.5" от References

Отговор
в отговор на hWnd|smilianov.net #2

Re: Regular Expressions във VB6 - възможно е!

Че е възможно в ясно.
Не ми е ясно как да направя така че "." [точка или dot] да match-ва и CR/LF/CRLF
Без това експешъните доста се усложняват понякога.

Друго което не ми е ясно е как да използвам самите match-ове в replace, т.е например да заменя всеки match с 'abc' & match & 'def' например по някакъв сравнително прост начин без цикли, масиви и т.н.
Ако някой знае плз кажете как.

Отговор
в отговор на microsoft #3

Re: Regular Expressions във VB6 - възможно е!

...ами и аз това се чудя?
Правя една програмка сега (UBB2HTML) - за предварително оформяне на постовете за форум на компютъра. Таговете като ";", ";" и т.н. ги замествам директно с еквивалентните им в HTML, обаче таговете с допълнителни атрибути, като ";" незнам какво да ги правя

Изобщо, въпреки че VB се слави, че е сравнително лесен за работа със стрингове - изобщо не е толкова гъвкъв в това, като Уеб насочените езици :(

[линк]

Отговор