Eric Bergman-Terrell's Blog

.NET Programming Tip: How to Extract Multiple Items Using One Regular Expression
October 4, 2010

To extract multiple items from text using a single regular expression, create a regular expression with named patterns, for example, IPAddr, Day, etc. (see below). The Discard named pattern specifies items that are not used. Then use the Regex Match property to extract the item corresponding to the named pattern from the results:

String Pattern = @"(?[\S]+)(?[\s-\[]*)(?\d{1,2})(?/)(?[a-zA-Z]+)(?/)(?\d{2,4})(?:)(?\d{1,2})(?:)(?\d{1,2})(?:)(?\d{1,2})(?[\s]*)(?[\+\-]*\d{2})(?\d{2})(?([\]\s])*""(GET|HEAD)([\s])*)(?[\S]*)(?[^""]*""[\s]*)(?[0-9]*)(?[\s]*)(?([0-9])*)(?[^""]*"")(?[^""]*)(?[^""]*""[^""]*"")(?[^""]*)";
Regex RE = new Regex(Pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
Regex RE = new Regex(Pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
String Line = SR.ReadLine().Trim();
Match M = RE.Match(Line);

Item.IPAddress = M.Result("${IPAddr}");
int Day = Int32.Parse(M.Result("${Day}"));
Keywords: Regular Expression, Match Multiple Text Patterns, Regex

Reader Comments

Comment on this Blog Post

Recent Posts

EBTCalc Users: A Desktop Version is Now Available!October 25, 2019
Python Script to Audit MediaMonkey TranscodingAugust 15, 2019
How to decompile Java code with JetBrains IntelliJ IDEA (2018.2.3, Windows 10)October 5, 2018
Java Programming Tip: SWT Photo Frame ProgramOctober 31, 2016
Vault 3 (Desktop) Version 1.63 ReleasedSeptember 9, 2016
"Compliance with Court Orders Act of 2016"April 9, 2016
Disable "Visual Voicemail" on Android / T-MobileJanuary 17, 2016