1-1 Comparison: MatchIn / MatchFor
Reference Page: Comparison Rules
Automatic Comparison Rules
Relationship: One-to-One / Match In String / Match For String
Definitions
Supported data types: String, Regular Expression
1. Match in String
First argument – base string; second argument – substring / regular expression.
2. Match for String
First argument – substring / regular expression; second argument – base string.
3. Special cases
- Empty string doesn’t match anything but another empty string
- “” != “.*” (empty string is not treated equally as a regex defining any/none character(s))
Implementation
Public Function Regex_Test(ByVal strSrc, ByVal strRegEx) Dim objRegEx Dim boolRC, intRC If strRegEx = "" Then If strSrc = "" Then Regex_Test = True Else Regex_Test = False End If Exit Function End If Set objRegEx = New RegExp objRegEx.Pattern = strRegEx On Error Resume Next boolRC = objRegEx.Test(strSrc) intRC = Err.Number On Error GoTo 0 If intRC <> 0 Then boolRC = False Set objRegEx = Nothing Regex_Test = boolRC End Function
Sample Calls
' Case "MatchIn" boolRC = Regex_Test(sActualValue, sExpectedValue) ' Case "MatchFor" boolRC = Regex_Test(sExpectedValue, sActualValue)
Test Code
Log.Message("RegEx routines") boolRC = Regex_Test("lorem ipsum", "ore") If Not boolRC Then Log.Error("Regex_Test failed") End If boolRC = Regex_Test("lorem ipsum", " psu") If boolRC Then Log.Error("Regex_Test failed") End If boolRC = Regex_Test("", "abc") If boolRC Then Log.Error("Regex_Test failed") End If boolRC = Regex_Test("abc", "") If boolRC Then Log.Error("Regex_Test failed") End If boolRC = Regex_Test("", "") If Not boolRC Then Log.Error("Regex_Test failed") End If boolRC = Regex_Test("lorem ipsum dre", ".*re.+") If Not boolRC Then Log.Error("Regex_Test failed") End If