問題ID:35872

この質問の投稿一覧へ

なし 問題ID:35872

msg# 1
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2020-5-22 8:22
3yamot  半人前   投稿数: 6
拡張正規表現「+」に関する質問です。

問題の内容としては、
「system.log」ファイルから17時台(時刻)を表す行のみ抽出するコマンドを選択するのですが、以下の2択が正解となっております。

1
grep -E '17:[0-5][0-9]:[0-5][0-9]' system.log
2
grep -E '17:[0-9]+:[0-9]+' system.log

この2が正解とされていることについて、以下の解説がありました。
-------------------------------------------
「+」は直前の文字の1回以上の繰り返しなので、「17:00:00」から「17:99:99」の範囲を抽出します。
-------------------------------------------

ただ、拡張正規表現である「+」は「直前の文字の1回以上の繰り返し」を表すので、例えば「17:0:0」といった文字列を含む行も抽出されてしまうと認識しているのですが、何故上記の解説にあるような抽出範囲になるのでしょうか?

ご教示いただけましたら幸いです。
何卒よろしくお願いいたします。

投稿ツリー

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.