Regex
, fileA 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.
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.
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.
ReadLine()
method will return each line separately, or null
if there are no more data.StreamReader
code to parse an entire file. We match each line.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.2492008-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
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.
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.
StreamReader
class
with the Regex
class
in the base class library to parse large text files.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.