1

さまざまなファイルから解析するさまざまな日付形式を一致させようとしています。日付形式の例: "Thu, 12 Nov 2009 14:17:44 -0000"

この文字列を最初の正規表現と一致させようとすると、真の結果が得られ、2 番目の正規表現を使用すると偽になります。

[A-Za-z]{3},\\s+\\d{2}\\s+[A-Za-z]{3}\\s+\\d{2}.*   (1. regex)
[A-Za-z]{3},\\s+\\d{2}\\s+[A-Za-z]{3}\\s+\\d{2}:.*  (2. regex)

私の意見では、両方の正規表現が上記の日付形式と一致する必要があります。私の失敗はどこですか?

4

3 に答える 3

1

最後の部分 "\s+\d{2}:.*" は "14:" と一致するはずだったのですが、年を忘れてしまいました。したがって、パーサーは「:」を予期しますが、2009 年に 2 番目のゼロを検出します。

必要なものは次のようなものです。

[A-Za-z]{3},\\s+\\d{2}\\s+[A-Za-z]{3}\\s+\\d{4}\\s+\\d{2}:.*  (2. regex)

(合格すべきだと思います:))

于 2012-05-09T06:15:42.077 に答える
1

4 桁の年を忘れているようです。したがって、2 番目の正規表現は正しくありません。

最初の正規表現の最後の部分は、最初の 2 桁2009とその後のすべてに一致します。

于 2012-05-09T06:13:28.073 に答える
0

あなたは年を忘れまし:

"[A-Za-z]{3},\\s+\\d{2}\\s+[A-Za-z]{3} \\p{Digit}{4} (\\p{Digit}{2}:){2}[0-9][0-9].*";

時間を別の形式でテストすることもできます。

于 2012-05-09T07:23:38.850 に答える