1.03.4基礎
services.txtから、行末がenabledで終わる行を抽出する。
enabled-nowや末尾に別文字が続く行は含めない。
適切な正規表現はどれか。
× 不正解
$は行末位置に一致するため、直前の文字列を行の末尾へ固定できる。
詳細解説
誤り
^enabled行頭のenabledを要求し、行末の値を判定しない。
誤り。enabledが行頭にあるかを判定するだけで、行末の状態フィールドには使えない。
正しい
enabled$$がenabledの直後を行末に限定する。
正しい。$が直前のenabledを行末へ固定し、enabled-nowのような後続文字を持つ値を除外する。
誤り
.enabled任意の1文字とenabledを探すが、行末を固定しない。
誤り。任意の1文字とenabledの並びを検索するが、その後に文字が続くことを禁止しない。
誤り
[enabled]$文字クラス内のいずれか1文字が行末にある条件になる。
誤り。文字クラスはenabledという単語ではなく、e・n・a・b・l・dのいずれか1文字を表す。
実際に確かめる
一時的な検証環境で実行できる例です。
printf 'api enabled\ndb enabled-now\nweb disabled\n' | grep 'enabled$'期待される結果
api enabled理解のポイント
- $は行末
- 文字列全体を文字クラスにしない
- 後続文字を除外
確認時の注意
- 確認環境: GNU grep 3.x
基礎のおさらい
行末アンカー
$は通常、行末または終端の改行直前へ一致する。
文字クラス
[abc]はabcという文字列ではなく、a・b・cのうち1文字を選ぶ。
問題IDKL-101-485
確認環境GNU grep 3.x
最終技術確認2026-08-13
誤り・権利侵害を報告