2

現在、日付に一致する次の正規表現があります。

([012]?\d)[\/.-]([0123]?\d)[\/.-]([012]\d{3})\b

これは、たとえば に一致します12/24/2011。アイテム間のスペースとも一致するように正規表現を作成するにはどうすればよい12 24 2011ですか?

4

5 に答える 5

4

文字クラスにスペース文字を追加します。

[\/. -]
    ^
于 2012-04-19T06:47:48.353 に答える
3

あなたの質問には既に回答がありましたが、あなたの正規表現には他にもいくつか問題があります。

  1. 単語の境界が最後にしかないのはなぜですか? また、最初に使用する必要があります。

  2. 正規表現は、「1.3/2012」などにも一致します。後方参照を使用すると、これを簡単に改善できます。

  3. これらすべてのキャプチャ グループが必要ですか?

だから私の提案はこれです

\b([012]?\d)([\/. -])([0123]?\d)\2([012]\d{3})\b
            ^^^^^^^^^           ^^
         store the first       match
         occurence in          group 2
         group 2

ここでRegexrを参照してください

于 2012-04-19T07:26:02.850 に答える
1

これを使って:

([012]?\d)[ \/.-]([0123]?\d)[ \/.-]([012]\d{3})\b

最初にスペースを追加する必要があると思います。

于 2012-04-19T06:52:36.793 に答える
0
([012]?\d)[\/.-\s]([0123]?\d)[\/.-\s]([012]\d{3})\b
于 2012-04-19T07:11:16.877 に答える
0
([012]?\d)([\/.-]|\s)([0123]?\d)([\/.-]|\s)([012]\d{3})\b
于 2012-04-19T06:49:55.847 に答える