Regular Expressions in VBScript - Building useful patterns
(Page 4 of 4 )
Now that you have all of the tools, let’s look at how to make them work. Say we wanted to build a regular expression to match a standard ten-digit phone number in the form of (xxx) xxx-xxxx.
The regular expression could easily begin as “(ddd) ddd-dddd”. This is a string of literals: an opening parenthesis followed by three digits, a closing parenthesis, a space, three more digits, a hyphen, and the last four digits.
If we apply repetition, we can condense this a bit to “(d{3}) d{3}-d{4}”. Both expressions mean the same thing. Now what if we wanted to make the parentheses optional? Of course, if we do, the space should be a hyphen. Enter grouping and alternation.
To begin, we need to specify what it should look like with parentheses. Thus our expression should begin with “(d{3) ” as before. Now we want to add an alternate possibility in case parentheses aren’t used. The expression then becomes “((d{3))|(d{3}-)”. This will match three digits between parentheses followed by a space, OR three digits followed by a hyphen. We then complete the expression by adding the remaining part of the match. The final expression looks like “((d{3))|(d{3}-)d{3}-d{4}”. This expression would match either “(123) 456-7890” or “123-456-7890.
Another example would be a common U.S. zip code. A U.S. zip code consists of five numeric digits followed by an optional four more separated by a hyphen. Just as in the previous example, you can use grouping to accomplish this quite easily. That expression would look like “d{5}(-d{4})?”. Notice this time that I’m using the ? symbol to match either 0 or 1 of the last group.
You can see that building regular expressions can provide very powerful tools for matching and replacing text strings. Very complex expressions can be built using a simple set of character symbols. Stayed tuned for a future article that demonstrates more advance uses of VBScript regular expressions.
If you’re interested in testing your regular expressions, I’ve built a Regular Expression Tester HTML application using the regular expression test code found here. Until next time, keep coding!
| DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |