1

私は正規表現の初心者です。以下の日付パターンを知りたい。

(\\d{2}(0[1-9]|1[012]|[0]{2}))

私はただ知っている、

  • 0[1-9]は 01 または 12 または.... 19
  • 1[012]10 または 11 または 12 です
  • [0]{2}は0000ですか?
  • \\d{2}は ?
4

1 に答える 1

8

\dは、一般的に同等の事前定義された文字クラスです[0-9](正規表現エンジンによっては、Unicode 数字も含まれる場合があります)。さらに、{n}は量指定子であり、正確に時刻にX{n}一致します。したがって、連続する 2 桁に一致します。Xn\d{2}

また、[0]{2}2 つの連続した0s: 00(not 0000) です。

についても少しずれています: , , ..., (先頭にいることはできません)0[1-9]のいずれかに一致します。については正しいです。01020911[012]

全体として、正規表現は次のようになります。

正規表現の視覚化

正規表現について詳しく知りたい場合は、regular-expressions.infoが正規表現に関する優れたオンライン リファレンスです。


上記の回答では、 を意味\dすると仮定し、 s をエスケープ\\dする必要がある文字列形式で正規表現を表しているため、後者を使用していることに注意してください。\ただし、一般的な正規表現を表す場合は、\s をエスケープしないでおくのが最善です。つまり、\\dはリテラルのバックスラッシュの後に が続くものとして解釈される可能性があるdため、\\d{4}と一致し\ddddます。おそらく、これはあなたの言いたいことではありません。

于 2013-08-19T13:29:33.007 に答える