Sunday, June 30, 2013

Use Of Regular Expression Object

What is Regular Expression ?

Regular expression is a sequence of characters. It means using regular expression object's
methods and properties a pattern can be found and manipulated.

Above description tells us that when to use regular expressions, to list a few major ones
that can be used in Automated Testing with QTP/VBScript:

1. To find a pattern in the content/text etc.

2. To create generic objects in Object Repository

3. To get collection of objects with a particular property pattern in descriptive programming
using regular expressions


Regular Expression (RegExp) Object in VBSript:

Now we are going to explore how to use regular expression object "RegExp". "RegExp" object in VBScript provides regular expression support.

Methods of RegExp Object:

1. Execute
2. Replace
3. Test

Properties of RegExp Object:


1. Global
2. IgnoreCase
3. Pattern

Using Methods of RegExp Object:

1. Execute Method:

The Execute method returns a Matches collection containing a Match object for each match found in string. Execute returns an empty Matches collection if no match is found.

Syntax:
RegularExpressionObject.Execute(string) 


Here is an instance explaining Execute Method of RegExp Object:

'########################
'@ Execute Method
'########################

Function funRegularExp (patrn, str)
 
 Dim varRgExp, Match, varFound   
    
  Set varRgExp = New RegExp   
  varRgExp.Pattern = patrn
  varRgExp.IgnoreCase = True        
  varRgExp.Global = True     
      
  Set varFound = varRgExp.Execute(str)

  For Each Match in varFound
    varResult = varResult & "Match found at position "
    varResult = varResult & Match.FirstIndex & ". Match Value is '"
    varResult = varResult & Match.Value & "'." & vbCRLF
  Next

  funRegularExp = varResult

End Function

print (funRegularExp("boy", "Boy1 sitting besides the boy2 has reporting card of BoY3"))


The result of above function call with the print statement comes like this:


2. Replace Method:

Replace method of Regular Expression object is used to find a specific pattern in the given string and getting it replaced with provided value


Syntax:
RegularExpressionObject.Replace(string1, string2) 


Here is an instance to illustrate use of Replace method:


'########################
'@ Replace Method
'########################

Function funReplace (patrn, varRepl)

  Dim regEx, sourceStr              
  sourceStr = "The quick brown fox jumped over the lazy dog."

  Set regEx = New RegExp            
  regEx.Pattern = patrn       
  regEx.IgnoreCase = True

  funReplace = regEx.Replace(sourceStr, varRepl)   

End Function

'@ Replace 'fox' with 'rat'.
print (funReplace("fox", "rat"))


The result of above function call with the print statement comes like this:



3. Test Method:

Test method executes a regular expression search in a given string. It returns a Boolean value to specify that pattern is was found in the given string


Syntax:
RegularExpressionObject.Test(string) 

See below example to understand use of regular expression Test method:


'########################
'@ Test Method
'########################

Function funRegularExp (patrn, str)
 
  Dim varRgExp, isFound   
  
  '@ Create New Regular Expression Object
  Set varRgExp = New RegExp

  '@ Set pattern   
  varRgExp.Pattern = patrn
  varRgExp.IgnoreCase = True        
  varRgExp.Global = True     
  
  isFound = varRgExp.Test(str)
  
  If isFound Then
    print "Pattern: "&patrn&" is found in the given string: "&str
  else
    print "Pattern: "&patrn&" is not found in the given string: "&str
  End If
  
End Function

funRegularExp "boy", "Boy1 sitting besides the boy2 has reporting card of BoY3"


Here is the result of above function call:



Use Of Properties of Regular Expression Object:

1. Global Property:

Global property is used to set or return a Boolean value that indicates if a pattern should match all occurrences in an entire search string or just the first one. 


Syntax:
RegularExpressionObject.Global [= True | False ]

Global Property Values and Description

Default Value: False

2. IgnoreCase Property:

IgnoreCase property is used to set or return a Boolean value that indicates if a pattern search is case-sensitive or not. 


Syntax:
RegularExpressionObject.IgnoreCase [= True | False ]

IgnoreCase Property Values and Description

Default Value: False


3. Pattern Property:

Pattern property is used to set or return the regular expression pattern being searched for.

Syntax:
object.Pattern [= "searchstring"]