Home
Search
Regex, Read and Match File LinesProcess a text file by using Regex on each line. Use the StreamReader class.
C#
Regex, file. A file can be parsed with Regex. The Regex can process each line to find all matching parts. This is useful for log files or output from other programs.
Regex
File
Here we process a file with regular expressions. The data file is provided—you will need to create it and access it in the test program.
An example. To use a regular expression on a file you must first read in the file into a string. Here's a console program that opens a StreamReader on the file and reads in each line.
StreamReader
Note The ReadLine() method will return each line separately, or null if there are no more data.
ReadLine, ReadLineAsync
Then We put the regular expression logic into the StreamReader code to parse an entire file. We match each line.
Tip Groups is indexed starting at 1. Never access Groups[0], which can result in lots of grief as your algorithm does not work.
using System; using System.IO; using System.Text.RegularExpressions; class Program { static void Main() { Regex regex = new Regex(@"\s/Content/([a-zA-Z0-9\-]+?)\.aspx"); // "\s/Content/" : space and then Content directory // "([a-zA-Z0-9\-]+?) : group of alphanumeric characters and hyphen // ? : don't be greedy, match lazily // \.aspx : file extension required for match using (StreamReader reader = new StreamReader(@"C:\programs\log.txt")) { string line; while ((line = reader.ReadLine()) != null) { // Try to match each line against the Regex. Match match = regex.Match(line); if (match.Success) { // Write original line and the value. string v = match.Groups[1].Value; Console.WriteLine(line); Console.WriteLine("... " + v); } } } } }
2008-10-16 23:56:44 W3SVC2915713 GET /Content/String.aspx - 80 66.249 2008-10-16 23:59:50 W3SVC2915713 GET /Content/Trim-String-Regex.aspx - 80 66.249
2008-10-16 23:56:44 W3SVC2915713 GET /Content/String.aspx - 80 66.249 ... String 2008-10-16 23:59:50 W3SVC2915713 GET /Content/Trim-String-Regex.aspx - 80 66.249 ... Trim-String-Regex
Notes, file. Please create the log.txt file and place it somewhere and read it in with the above program. It is important to have the test file to see how the Regex code works.
Further usages. There are more usages of this kind of code in programs. We can match lines in files such as logs, trace files, scientific calculations, CSV files, or any text file.
Tip Processing each line separately may be faster because less memory must be accessed and fewer characters must be checked.
Review We combined the StreamReader class with the Regex class in the base class library to parse large text files.
A summary. We used a regular expression on every line in a text file. We showed an accurate and simple way of matching every line in a text file.
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.
No updates found for this page.
Home
Changes
© 2007-2023 Sam Allen.