Regular Expressions във VB6 - възможно е!
2 отговора
93 прегледа
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
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
Re: Regular Expressions във VB6 - възможно е!
Че е възможно в ясно.
Не ми е ясно как да направя така че "." [точка или dot] да match-ва и CR/LF/CRLF
Без това експешъните доста се усложняват понякога.
Друго което не ми е ясно е как да използвам самите match-ове в replace, т.е например да заменя всеки match с 'abc' & match & 'def' например по някакъв сравнително прост начин без цикли, масиви и т.н.
Ако някой знае плз кажете как.
Не ми е ясно как да направя така че "." [точка или dot] да match-ва и CR/LF/CRLF
Без това експешъните доста се усложняват понякога.
Друго което не ми е ясно е как да използвам самите match-ове в replace, т.е например да заменя всеки match с 'abc' & match & 'def' например по някакъв сравнително прост начин без цикли, масиви и т.н.
Ако някой знае плз кажете как.
Re: Regular Expressions във VB6 - възможно е!
...ами и аз това се чудя?
Правя една програмка сега (UBB2HTML) - за предварително оформяне на постовете за форум на компютъра. Таговете като ";", ";" и т.н. ги замествам директно с еквивалентните им в HTML, обаче таговете с допълнителни атрибути, като ";" незнам какво да ги правя
Изобщо, въпреки че VB се слави, че е сравнително лесен за работа със стрингове - изобщо не е толкова гъвкъв в това, като Уеб насочените езици :(
[линк]
Правя една програмка сега (UBB2HTML) - за предварително оформяне на постовете за форум на компютъра. Таговете като ";", ";" и т.н. ги замествам директно с еквивалентните им в HTML, обаче таговете с допълнителни атрибути, като ";" незнам какво да ги правя
Изобщо, въпреки че VB се слави, че е сравнително лесен за работа със стрингове - изобщо не е толкова гъвкъв в това, като Уеб насочените езици :(
[линк]