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
Solved

Vbscript Case Statment using multiple regular Expression pattern

Posted on 2009-05-06
4
1,647 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
  • 3
4 Comments
 
LVL 27

Accepted Solution

by:
ddrudik earned 500 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

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

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.

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

This article is the result of a quest to better understand Task Scheduler 2.0 and all the newer objects available in vbscript in this version over  the limited options we had scripting in Task Scheduler 1.0.  As I started my journey of knowledge I f…
When you see single cell contains number and text, and you have to get any date out of it seems like cracking our heads.
Learn the basics of strings in Python: declaration, operations, indices, and slicing. Strings are declared with quotations; for example: s = "string": Strings are immutable.: Strings may be concatenated or multiplied using the addition and multiplic…
Video by: Mark
This lesson goes over how to construct ordered and unordered lists and how to create hyperlinks.

838 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