2017-07-07 10 views
-1

C#でRegexについて学んでいますが、有効な日をチェックするコードを書いていますが、Regex.Matchは常にfalseです。正規表現の一致日

var pat = @"(today|tomorrow|yesterday)((?:\s*[+-]?\s*\d+\s*[dwym])*)"; // Can not change 

Match match = Regex.Match(value, pat); 

match.Successは常にfalse(値= 2017年7月7日)フォーマットがそのパターンと一致させることができます

のですか?

+1

あなたの 'value'が' 2017-07-07'の場合、あなたの正規表現はそれにマッチできません。 –

+0

ありがとうございますが、どのパターンがそのパターンに一致するかを詳しく説明できます –

+0

実際、このパターンは遠く離れていません。 –

答えて

2

実際に達成しようとしていることは何ですか?外見から、テキスト(今日/明日/昨日)、または特定の形式の日付のいずれかと一致させようとしていますか?

はこれを試してみてください:

(today|tomorrow|yesterday|\d{4}-\d{2}-\d{2}) 

は、同様に、正規表現のデザイナーを使用してみてください。私はRad Software Regular Expression Designer 1.4を使用します。

+0

正規表現デザイナを信用しないでください。 – revo

+0

@revoなぜですか?学習には最適ですが、あなたは正規表現を手作業で入力する必要があります...それはテストを支援する単なるツールです。 –

+0

あなたの提案をお寄せいただきありがとうございますが、システム設計のためこのパターンを変更することはできません。有効な日を確認する機能を作成するだけです。 –