Har hittat en sak som jag tycker är felaktig i Regex klassen i .NET. $ skall matcha slutet av en sträng precis som du tycker MEN det finns ett undantag och det är precis som du har upptäckt, när en sträng slutar med EN radbrytning. Ja, men det är en väldigt dum funktion. Det betyder att mycket av valideringen på nätet tillåter att en radbrytning existerar i slutet på strängen, när man förväntar sig att det ska vara en enda rad. Borde inte det där kunna gå att styra med någon option? $ matchar EndOfLine eller EndOfText, det finns en flagga för att ställa in detta om jag kommer ihåg korrekt. byt ut $ till \z så skall den fungera som du villFelaktig resultat av Regular Expression?
// Result: True
string pattern = @"^\d{8}$";
Regex.IsMatch("11111111", pattern);
// Result: True
Regex.IsMatch("11111111\n", pattern);
// Result: False
Regex.IsMatch("11111111\n\n", pattern);
Är verkligen rad 2 korrekt? Jag skulle förvänta mig att enbart det första är korrekt. Vet att man kan ge andra flaggor till Regex, men dessa ger samma resultat.
Sv: Felaktig resultat av Regular Expression?
Denna förbättring gjorde man i Perl och många har valt att kopiera detta inkl. .NET. Om man i Pearl läser in en rad från en fil får man den med en radbrytning på slutet. Har man då en liten fil med texten 'hej' läses den in som 'hej\n'
så det är Pearl's fel...Sv:Felaktig resultat av Regular Expression?
Nåväl, inget stort problem men ändå en dum idé.Sv: Felaktig resultat av Regular Expression?
Sv: Felaktig resultat av Regular Expression?
http://www.regular-expressions.info/anchors.html
<info>In all programming languages and libraries discussed on this website , except Ruby, you have to explicitly activate this extended functionality. It is traditionally called "multi-line mode". In Perl, you do this by adding an m after the regex code, like this: m/^regex$/m;. In .NET, the anchors match before and after newlines when you specify RegexOptions.Multiline, such as in Regex.Match("string", "regex", RegexOptions.Multiline).</info>Sv: Felaktig resultat av Regular Expression?