日付形式をカンマで一致させるための正規表現があります。例えばRegexオプション "Multiline"
YYYY/MM/DDまたはYYYY/MM
:
2016/09/02,2016/08,2016/9月30日
マイコード:
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();
私は複数行オプションを使用します。 文字列データに "\ n"がある場合。 すべての文字がこの正規表現に一致します。例えば
:
string data="test\n"
string data="2100/1/1"
I find option definition in MSDN。
^および$ language要素の解釈が、入力文字列の先頭と末尾ではなく、行の先頭と末尾に一致するように変更されています。
なぜこの問題が発生したのか分かりませんでした。 誰でもそれを説明できますか?おかげさまで
あなたの正規表現がグループである可能性があります0以上 – Kelvin
はい、正規表現は空の*行*と一致します。 –
ありがとうございます。私はあなたの説明の後すぐに理解します。 –