?
Solved

Vbscript Case Statment using multiple regular Expression pattern

Posted on 2009-05-06
4
Medium Priority
?
1,707 Views
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

0
Comment
Question by:KentuckyDataService
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
4 Comments
 
LVL 27

Accepted Solution

by:
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

0
 
LVL 27

Expert Comment

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

Author Comment

by:KentuckyDataService
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.
0
 
LVL 27

Expert Comment

by:ddrudik
ID: 25069020
Thanks for the question and the points.
0

Featured Post

On Demand Webinar: Networking for the Cloud Era

Did you know SD-WANs can improve network connectivity? Check out this webinar to learn how an SD-WAN simplified, one-click tool can help you migrate and manage data in the cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article is meant to give a basic understanding of how to use R Sweave as a way to merge LaTeX and R code seamlessly into one presentable document.
Deploying a Microsoft Access application in a Citrix environment is not difficult but takes a few steps. However, Citrix system people are often of little help, as they typically know next to nothing about Access. The script provided here will take …
Learn the basics of modules and packages in Python. Every Python file is a module, ending in the suffix: .py: Modules are a collection of functions and variables.: Packages are a collection of modules.: Module functions and variables are accessed us…
The viewer will learn how to dynamically set the form action using jQuery.
Suggested Courses

764 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