Ich habe eine Regex, die mit dem Datumsformat mit Komma übereinstimmt.Regex-Option "Multiline"
yyyy/mm/dd oder yyyy/mm
Zum Beispiel:
2016/09/02,2016/08,2016/09/30
Mein Code:
string data="21535300/11/11\n";
Regex reg = new Regex(@"^(20\d{2}/(0[1-9]|1[012])(/(0[1-9]|[12]\d|30|31))?,?)*$",
RegexOptions.Multiline);
if (!reg.IsMatch(data))
"Error".Dump();
else
"True".Dump();
Ich benutze die Option multiline. Wenn Zeichenfolge Daten "\ n" haben. Jedes Zeichen entspricht dieser Regex.
Zum Beispiel:
string data="test\n"
string data="2100/1/1"
I find option definition in MSDN. Es sagt:
Es ändert die Interpretation der^und $ Sprachelemente, so dass sie den Anfang und das Ende einer Zeile anstelle von Anfang und Ende der Eingabezeichenfolge übereinstimmen.
Ich habe nicht verstanden, warum dieses Problem passiert ist. Jeder kann es erklären? Danke.
Möglicherweise, weil Ihre Regex eine Gruppe ist 0 oder mehr – Kelvin
Ja, die Regex entspricht einer leeren * Zeile *. –
Danke. Ich verstehe bald nach Ihrer Erklärung. –