I\'m trying to match this expression:
^COMA1TA2000,.*$
with this text:
# Qualquer linha iniciada por # será ignorada
# Cara
Use File.ReadLines
instead of ReadToEnd
method and apply regex on each line.
What you're doing now, is reading the entire text as a block of text and MultiLine option sometimes breaks things down (as there are different CRLF characters in different operating systems, and stuff like that).
My suggestion is this:
string[] lines = File.ReadAllLines("path to your text file");
Regex regex = new Regex("^pattern$");
foreach (string line in lines)
{
Match match = regex.Match(line.Trim())
if (match.Successful)
{
// have your match here.
}
}
You can use RegexOptions.Multiline
, like so:
Regex.IsMatch(content, pattern, RegexOptions.Multiline)
Docs: http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regexoptions.aspx
If RegexOptions.Multiline
is not set, ^
and $
will match beginning and the end* of the string, not the line like intended.
Or set multiline option in regex (?m)
: (?m)^COMA1TA2000,.*$