75002


ユーザーに日付を入力させるテキストボックスがあります。  
入力方法は`2021.3.1`のように年月日をドット(`.`)で区切って入力させます。(入力方法は変更不可)  
入力された日付が正しいものかチェックするメソッドを作成しているのですが  
その際、`*.3.1`や`*.*.*`のようにアスタリスク(`*`)で年月日を入力された場合でも日付チェックOKにしたいのですが  
以下のコードではうまく動きませんでした。

解決策をご教授いただけると助かります。  
よろしくお願いいたします。

[code]

    string date = "*.*.*";  // 入力された年月日 (現状NGになってしまう)
    
     if (Regex.IsMatch(date, "[0-9]{4}|[*].[1-9]|0[1-9]|1[0-2]|[*].[1-9]|0[1-9]|1[0-9]|2[0-9]|3[0-1]|[*]"))
     {
     　　result = true;
     }
    
[/code]


CC BY-SA 4.0
2021-03-31T05:24:35.223
75000
2021-03-31T05:43:07.083
2021-03-31T05:35:05.897
4236
44575
question
c# 正規表現
正規表現　日付かどうかチェックしたい


正規表現のパターンとしては

[code]

    ^(?:[0-9]{4}|\*)\.(?:0?[1-9]|1[0-2]|\*)\.(?:0?[1-9]|[12][0-9]|3[01]|\*)$
    
[/code]

ぐらいでしょうか？  
これをC#文字列としてソースコードに記述するには

[code]

    @"^(?:[0-9]{4}|\*)\.(?:0?[1-9]|1[0-2]|\*)\.(?:0?[1-9]|[12][0-9]|3[01]|\*)$"
    
[/code]

もしくは

[code]

    "^(?:[0-9]{4}|\\*)\\.(?:0?[1-9]|1[0-2]|\\*)\\.(?:0?[1-9]|[12][0-9]|3[01]|\\*)$"
    
[/code]

でしょうか。


CC BY-SA 4.0
2021-03-31T05:43:07.083
75002
2021-03-31T05:43:07.083
4236
75000
answer