{"id":1348,"date":"2009-04-14T10:00:10","date_gmt":"2009-04-14T18:00:10","guid":{"rendered":"http:\/\/www.sapien.com\/blog\/2009\/04\/14\/vbscript-regular-expressions\/"},"modified":"2009-04-14T10:00:10","modified_gmt":"2009-04-14T18:00:10","slug":"vbscript-regular-expressions","status":"publish","type":"post","link":"https:\/\/dev.sapien.com\/blog\/2009\/04\/14\/vbscript-regular-expressions\/","title":{"rendered":"VBScript Regular Expressions"},"content":{"rendered":"<p>I seem to find my self turning to regular expressions more often these days, often to help out a fellow scripter in one of the many scripting forums I keep tabs on. I thought I&#8217;d take a moment and provide a brief explanation on how to use regular expressions in VBScript. First off, for those who don&#8217;t know, a regular expression is a way of identifying or matching a string against a pattern. For example we all know that 172.16.100.200 looks like an IP address because of its pattern. The string <a href=\"mailto:roygbiv@rainbow.net\">roygbiv@rainbow.net<\/a> looks like an email address, again based on the pattern. A regular expression can be used identify strings based on a pattern. <\/p>\n<p>Regular expressions don&#8217;t necessarily validate the data. 172.16.100.200 looks like an IP but whether it is valid or not is another story. I know there are some very complex regular expression patterns you can use that will. For our purposes we&#8217;ll stick to more basic patterns.<\/p>\n<p>A pattern can be a simple as another string, but usually you don&#8217;t know the exact string and you want to find a pattern. To accomplish that you need to build a regular expression pattern using elements like these.<\/p>\n<p class=\"TableTitle\"><strong><em>Regular Expression Characters<\/em><\/strong><\/p>\n<table class=\"MsoNormalTable\" style=\"border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext\" cellspacing=\"0\" cellpadding=\"0\" border=\"1\">\n<tbody>\n<tr style=\"mso-yfti-irow: 0; mso-yfti-firstrow: yes\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableHead\"><strong>Character<\/strong><\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableHead\"><strong>Description<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 1\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">\\b<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Match a word boundary<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 2\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">\\B<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Match any non-word boundary<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 3\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">\\d<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Match any digit (0-9)<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 4\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">\\D<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Match any non-digit (0-9)<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 5\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">\\f<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Match a form feed<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 6\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">\\n<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Match a newline<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 7\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">\\r<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Match a carriage return<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 8\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">\\s<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Match any whitespace, tab or newline<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 9\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">\\S<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Match any non whitespace character<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 10\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">\\t<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Match any tab<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 11\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">\\v<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Match any vertical tab (not really used)<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 12\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">\\w<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Match a word (alpha-numeric and the underscore character)<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 13\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">\\W<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Match any non-word character<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 14\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">(Value)<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Matches exact characters anywhere in the original value.<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 15\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">.<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Matches any single character.<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 16\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">[value]<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Matches at least one of the characters in the brackets.<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 17\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">[range]<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Matches at least one of the characters within the range. The Use of a hyphen () allows specification of contiguous character. [a-z]<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 18\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">[^]<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Matches any character except those in brackets. You can also use a range [^m-p]<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 19\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">^<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Matches the beginning characters.<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 20\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">$<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Matches the end characters.<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 21\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">*<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Matches zero or more instances of the preceding character.<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 22\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">?<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Matches zero or more instances of the preceding character.<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 23\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">\\<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Matches the character that follows as an escaped character.<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 24\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">+<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Matches repeating instances of the specified pattern such as abc+.<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 25\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">{n}<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Specifies exactly n matches.<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 26\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">{n,}<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Specifies <i style=\"mso-bidi-font-style: normal\">at least<\/i> n matches.<\/p>\n<\/td>\n<\/tr>\n<tr style=\"mso-yfti-irow: 27; mso-yfti-lastrow: yes\">\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">{n,m}<\/p>\n<\/td>\n<td style=\"border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 173.9pt; padding-top: 0in; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt\" valign=\"top\" width=\"232\">\n<p class=\"TableBody\">Specifies at least n, but no more than m matches.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"MsoNormal\"><?xml:namespace prefix = o \/><o:p>I won&#8217;t go into detail about every element but I offer this table so that as you find regular expression patterns to use you&#8217;ll be able to decipher them. You&#8217;ll see some examples in a moment, but first back to VBScript.<\/o:p><\/p>\n<p class=\"MsoNormal\"><o:p>In a VBS file, we will create a Regular expression object using the New keyword.<\/o:p><\/p>\n<p><font color=\"#0000ff\">Set RegEx = New RegExp&nbsp; <\/font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/p>\n<p>This object has several properties we can set. First, we can configure our regular expression to be case sensitive or not.<\/p>\n<p><font color=\"#0000ff\">RegEx.IgnoreCase = True&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/p>\n<p>Regular expressions can be configured to find the first match or all matches. By setting the Global property to True, we&#8217;ll get all matches.<\/p>\n<p><font color=\"#0000ff\">RegEx.Global=True<\/font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br \/>Finally we need to assign a pattern.<\/p>\n<p><font color=\"#0000ff\">RegEx.Pattern=&#8221;\\w+&#8221;<\/font><\/p>\n<p>The RegEx object will match on any alphanumeric character that is repeated. Suppose we want to find the strings in &#8220;SAPIEN Technologies&#8221;. I&#8217;ll use the RegEx object&#8217;s Test() method to see if the pattern matches.<\/p>\n<p><font color=\"#0000ff\">Regex.Test(&#8220;SAPIEN Technologies&#8221;)<\/font><\/p>\n<p>This method returns True if there is a match. Another way I could have accomplished this, and especially if I wanted to see what the pattern matched is to use the Execute() method.<\/p>\n<p><font color=\"#0000ff\">Set colMatches=RegEx.Execute(strString)<\/font><\/p>\n<p>Any matches will be stored as an array which is easy enough to enumerate.<\/p>\n<p><font color=\"#0000ff\">for each match in colMatches<\/font><\/p>\n<p><font color=\"#0000ff\">wscript.echo match.value<\/font><\/p>\n<p><font color=\"#0000ff\">next<\/font><\/p>\n<p>If I run this code I&#8217;ll see that I got matches on &#8220;SAPIEN&#8221; and &#8220;Technologies&#8221;. Nothing matched on the space separating the two words. Let&#8217;s modularize what we have so far into a few functions.<\/p>\n<div style=\"border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4\">\n<div style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none\"><span style=\"color: #0000ff\">Function<\/span> RegExMatch(strString,strPattern)<\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">    <span style=\"color: #0000ff\">Dim<\/span> RegEx<\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none\">    RegExMatch=<span style=\"color: #0000ff\">False<\/span><\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">    <\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none\">    <span style=\"color: #0000ff\">Set<\/span> RegEx = <span style=\"color: #0000ff\">New<\/span> RegExp                <\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">    RegEx.IgnoreCase = <span style=\"color: #0000ff\">True<\/span>                <\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none\">    RegEx.<span style=\"color: #0000ff\">Global<\/span>=<span style=\"color: #0000ff\">True<\/span>                   <\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">    RegEx.Pattern=strPattern<\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none\">    <\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">    <span style=\"color: #0000ff\">If<\/span> RegEx.Test(strString) <span style=\"color: #0000ff\">Then<\/span> RegExMatch=<span style=\"color: #0000ff\">True<\/span><\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none\">&nbsp;<\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\"><span style=\"color: #0000ff\">End<\/span> <span style=\"color: #0000ff\">Function<\/span> <\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none\">&nbsp;<\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\"><span style=\"color: #0000ff\">Function<\/span> GetMatch(strString,strPattern)<\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none\">    <span style=\"color: #0000ff\">Dim<\/span> RegEx,arrMatches<\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">    <span style=\"color: #0000ff\">Set<\/span> RegEx = <span style=\"color: #0000ff\">New<\/span> RegExp                <\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none\">    RegEx.IgnoreCase = <span style=\"color: #0000ff\">True<\/span>                <\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">    RegEx.<span style=\"color: #0000ff\">Global<\/span>=<span style=\"color: #0000ff\">True<\/span>                   <\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none\">    RegEx.Pattern=strPattern<\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">    <span style=\"color: #0000ff\">Set<\/span> colMatches=RegEx.Execute(strString)<\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none\">    <span style=\"color: #0000ff\">Set<\/span> GetMatch=colMatches<\/pre>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\"><span style=\"color: #0000ff\">End<\/span> Function<\/pre>\n<\/div>\n<\/div>\n<p>The RegExMatch function will return True if the string matches the regular expression pattern.<\/p>\n<p><font color=\"#0000ff\">strString=&#8221;123.45.67.89&#8243;<br \/>strPattern=&#8221;^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$&#8221; <\/font><\/p>\n<p><font color=\"#0000ff\">If RegExMatch(strString,strPattern) Then <br \/>&nbsp;&nbsp;&nbsp; WScript.Echo strString &amp; &#8221; looks like a valid IP address.&#8221;<br \/>Else<br \/>&nbsp;&nbsp;&nbsp; WScript.Echo strString &amp; &#8221; does NOT look like a valid IP address.&#8221;<br \/>End If<\/font> <\/p>\n<p>Because my string matches the regular expression pattern exactly, notice I&#8217;m using the ^ and $ anchors, I&#8217;ll get a positive result back.<\/p>\n<p>Or perhaps I need to parse a line from a log file pulling out IP addresses.<\/p>\n<p><font color=\"#0000ff\">strString=&#8221;2009-04-14 15:00:53 172.16.10.1 PROPFIND \/admin$. &#8211; 80 &#8211; 172.16.10.102 Microsoft-WebDAV-MiniRedir\/6.0.6001 403 2 0&#8243;<br \/>strPattern=&#8221;\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}&#8221; <\/font><\/p>\n<p><font color=\"#0000ff\">If RegExMatch(strString,strPattern) Then<br \/>&nbsp;&nbsp;&nbsp; Set matches=GetMatch(strString,strPattern)<br \/>&nbsp;&nbsp;&nbsp; For Each match In matches<br \/>&nbsp;&nbsp;&nbsp;&nbsp; &#8216;ignore the web server IP<br \/>&nbsp;&nbsp;&nbsp;&nbsp; If match.value &lt;&gt; &#8220;172.16.10.1&#8221; then<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WScript.Echo match.value<br \/>&nbsp;&nbsp;&nbsp;&nbsp; End If<br \/>&nbsp;&nbsp;&nbsp; Next<br \/>End If<\/font> <\/p>\n<p>If the pattern matches, then I call the GetMatch function to retrieve the matching values. In this case, I&#8217;ll get a match for 172.16.10.12. I&#8217;ll be back later to have more fun with regular expressions and VBScript. <\/p>\n<\/p>\n<div class=\"wlWriterSmartContent\" id=\"scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:3115dc78-d6a1-4d71-a197-3e46e71ee0d7\" style=\"padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px\">\n<p>In the meantime, download a script file with these functions and examples <a href=\"http:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2009\/04\/demoregexmatch.txt\" target=\"_blank\">here.<\/a><\/p>\n<\/div>\n<p>You can also learn more about regular expressions and VBScript in <a href=\"http:\/\/www.sapienpress.com\/wshcore.asp\" target=\"_blank\">WSH and VBScript Core: TFM<\/a>. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>I seem to find my self turning to regular expressions more often these days, often to help out a fellow scripter in one of the many scripting forums I keep tabs on. I thought I&#8217;d take a moment and provide a brief explanation on how to use regular expressions in VBScript. First off, for those who don&#8217;t know, a regular expression is a way of identifying or matching a string against a pattern. For example we all know that 172.16.100.200 looks like an IP address because of its pattern. The string roygbiv@rainbow.net looks like an email address, again based on the pattern. A regular expression can be used identify strings based on a pattern.<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[24],"tags":[463,477,57,996],"class_list":["post-1348","post","type-post","status-publish","format-standard","hentry","category-vbscript","tag-regex","tag-regular-expression","tag-scripting","tag-vbscript"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts\/1348","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/comments?post=1348"}],"version-history":[{"count":0,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts\/1348\/revisions"}],"wp:attachment":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/media?parent=1348"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/categories?post=1348"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/tags?post=1348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}