タイムスタンプHH:MM:SSの正規表現?

タイムスタンプHH:MM:SSの正規表現?

というファイルにはresult次の内容があります。

<span class=timestamp><b>15:31:00</b></span>

タイムスタンプを見つける方法は?

以下はいくつかの試みとその結果です。

> grep "[0..9]*:[0..9]*:[0..9]*"  result -o

> grep "[0..9]*:[0..9]*"  result -o
:
:00

> grep "[0..9]*:"  result -o
:
:

ベストアンサー1

私は使用します

grep -o '[0-2][0-9]:[0-5][0-9]:[0-5][0-9]' result

結果をタイムスタンプである文字列(0から29までの時間(午前/午後12時間ではなく24時間と仮定して約23)、0から59までの分、秒)に制限します。

拡張正規表現を導入すると、一致がより厳しくなる可能性があります。

grep -oE '([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]' result

うるう秒を許可するには、60が許容値でなければなりません。

grep -oE '([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' result

(UTC真夜中の前に追加されましたが、上記では他のタイムゾーンも許可されています。)

おすすめ記事