|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (Classic ASP) Regular Expression with Multiple Matches and Named Capture GroupsSee more Regular Expressions ExamplesDemonstrates regular expressions with named capture groups and multiple matches.Note: This example requires Chilkat v11.1.0 or greater. 
 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <% success = 0 set sb = Server.CreateObject("Chilkat.StringBuilder") crlf = 1 success = sb.AppendLine("Name: John Smith",crlf) success = sb.AppendLine("Name: Jack Johnson",crlf) success = sb.AppendLine("Name: Mary Adams",crlf) Response.Write "<pre>" & Server.HTMLEncode( sb.GetAsString()) & "</pre>" ' We have the following string: ' Name: John Smith ' Name: Jack Johnson ' Name: Mary Adams pattern = "Name:\s+(?<first>\w+)\s+(?<last>\w+)" set json = Server.CreateObject("Chilkat.JsonObject") json.EmitCompact = 0 timeoutMs = 2000 numMatches = sb.RegexMatch(pattern,json,timeoutMs) If (numMatches < 0) Then ' Probably an error in the regular expression. ' Suggestion: Use AI to help create and/or diagnose regular expressions. Response.Write "<pre>" & Server.HTMLEncode( sb.LastErrorText) & "</pre>" Response.End End If ' Examine the matches: Response.Write "<pre>" & Server.HTMLEncode( json.Emit()) & "</pre>" ' Here is the JSON showing the matches. ' Important: Capture group 0 always contains the entire match — that is, the portion of the input string that matches the full regular expression. ' { ' "named": { ' "first": 1, ' "last": 2 ' }, ' "match": [ ' { ' "group": [ ' { ' "cap": "Name: John Smith", ' "idx": 0, ' "len": 16 ' }, ' { ' "cap": "John", ' "idx": 6, ' "len": 4 ' }, ' { ' "cap": "Smith", ' "idx": 11, ' "len": 5 ' } ' ] ' }, ' { ' "group": [ ' { ' "cap": "Name: Jack Johnson", ' "idx": 18, ' "len": 18 ' }, ' { ' "cap": "Jack", ' "idx": 24, ' "len": 4 ' }, ' { ' "cap": "Johnson", ' "idx": 29, ' "len": 7 ' } ' ] ' }, ' { ' "group": [ ' { ' "cap": "Name: Mary Adams", ' "idx": 38, ' "len": 16 ' }, ' { ' "cap": "Mary", ' "idx": 44, ' "len": 4 ' }, ' { ' "cap": "Adams", ' "idx": 49, ' "len": 5 ' } ' ] ' } ' ] ' } ' The capture group index is obtained by looking up the name in the JSON result. ' For example: idx_first = json.IntOf("named.first") idx_last = json.IntOf("named.last") i = 0 matchCount = json.SizeOfArray("match") Do While i < matchCount Response.Write "<pre>" & Server.HTMLEncode( "Match " & i + 1 & ":") & "</pre>" json.I = i json.J = idx_first Response.Write "<pre>" & Server.HTMLEncode( "first: " & json.StringOf("match[i].group[j].cap")) & "</pre>" json.J = idx_last Response.Write "<pre>" & Server.HTMLEncode( "first: " & json.StringOf("match[i].group[j].cap")) & "</pre>" Response.Write "<pre>" & Server.HTMLEncode( "") & "</pre>" i = i + 1 Loop ' Output is: ' Match 1: ' first: John ' first: Smith ' ' Match 2: ' first: Jack ' first: Johnson ' ' Match 3: ' first: Mary ' first: Adams %> </body> </html> | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.