Vbscript Case Statment using multiple regular Expression pattern

Posted on 2009-05-06
Medium Priority
Last Modified: 2012-05-06
I need to use a case statement or If - Then structure to change account numbers.  I have a search string that uses a long regular expression statement.  ITs actually 3 "filters" with the " | " or statement.  That part works.  i have echoed back what it finds there adn its doing its job.  

The problem is, i need to do different things to clean up the account number based on which regexpr was used to find that number.  Right now i have only 3 possibilities...but it could grow to much more.  SO, i need to use a case or If - then statement to check and see if the account number it finds is = to which regexpr pattern.  I know this code is wrong and does not work..but gives teh idea of what i'm trying to do

I am decent with vbscript, but cannot figure out the logic for this answer.
Thanks in advance
' Try to find first type of account number
         ' Find Account Number inside Text File
         Set inFile = objFileSys.openTextFile(txtFile,1,True)
         Set objRegExpr = New RegExp
         objRegExpr.Global = True
         objRegExpr.Pattern = "[0-9]{6}[\s][0-9]{7}[\s][0-9]{5}|[0-9]{3}\-[0-9]{3}\-[0-9]{3}\-[0-9]{1}|[6][0-9]{15}"
         Set varPatternA = New RegExp
		 varPatternA.Global = True
		 varPatternA.Pattern = "[0-9]{6}[\s][0-9]{7}[\s][0-9]{5}"
		 Set varPatternB = New RegExp
		 varPatternB.Global = True
		 varPatternB.Pattern = "[0-9]{3}\-[0-9]{3}\-[0-9]{3}\-[0-9]{1}"
		 Set varPatternC = New RegExp
		 varPatternC.Global = True
		 varPatternC.Pattern = "[6][0-9]{15}"
	 ' finds account number pattern in file  "* ################"
	 Do Until infile.AtEndOfStream
            Set regExprMatch = objRegExpr.Execute (infile.readline)
	    	For Each objMatch in regExprMatch
		   If objMatch.Value = varPatternA Then
		         docAccountNumber = objMatch.value
                         ' Trim spaces out of AccNum
                          regEx.Pattern = "\s"
                          docAccountNumber = Trim(regEx.Replace(docAccountNumber, ""))
                          docAccountNumber = Left(docAccountNumber,15)
		     End IF
		If objMatch.Value = varPatternB.Pattern Then                
                	docAccountNumber = objMatch.value
                       ' Trim "-" out of the account Number
                        regEx.Pattern = "\-"
                        docAccountNumber = Trim(regEx.Replace(docAccountNumber, ""))
                        ' Add  Header Code
                        docAccountNumber = "123456" & docAccountNumber
                End If
		If objMatch.Value = varPatternC.Pattern Then                
                	docAccountNumber = objMatch.Value
                End If

Open in new window

Question by:KentuckyDataService
  • 3
LVL 27

Accepted Solution

ddrudik earned 2000 total points
ID: 24326463
In ASP VBSCRIPT you would normally use a .Test that would return true/false if a given regex would match.  Not sure I follow your question though.
Set regEx = New RegExp
regEx.Global = True
regEx.IgnoreCase = True
regEx.MultiLine = True
teststring = "your string"
regEx.Pattern = "^[a-z]+$"
Set Test = regEx.Test(teststring)

Open in new window

LVL 27

Expert Comment

ID: 24641077
KentuckyDataService, did that answer your question?  Let me know if I can help further.

Author Comment

ID: 25068469
I think that could have worked, i will award you the points.  I ended up using 2 regular expressions using the OR " | " for it.  Not the most efficient way, but it worked.
LVL 27

Expert Comment

ID: 25069020
Thanks for the question and the points.

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Batch, VBS, and scripts in general are incredibly useful for repetitive tasks.  Some tasks can take a while to complete and it can be annoying to check back only to discover that your script finished 5 minutes ago.  Some scripts may complete nearly …
A quick Powershell script I wrote to find old program installations and check versions of a specific file across the network.
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

607 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question