Qraft(クラフト) 資格・学習クイズアプリ

基本情報技術者試験 練習問題 16:正規表現の基本パターン

正規表現について述べた文として、正しいものはどれか。

  1. 正規表現の「.」(ドット)は「任意の1文字」にマッチし、改行文字を含むすべての文字にマッチする。
  2. 正規表現の「*」は直前のパターンが0回以上繰り返されることを意味する。
  3. 正規表現の「^」は文字列の開始位置を意味し、「$」は文字列の終了位置を意味する。
  4. 正規表現「[0-9]+」は1文字以上の数字にマッチし、複数の連続した数字にもマッチする。
  5. 正規表現「a|b」は文字aと文字bを順に検索し、両方が含まれる文字列にのみマッチする。

Qraftユーザーの成績:難易度 Dランク(レーティング1137)・正答率 67%(10/15回正解)
レーティングは解いた人の実力と正誤から算出する難しさ(初期値1200)。ランクはその全問題中の順位(S+が最難関、F-が最易)

正解と解説を見る
正解:正規表現「[0-9]+」は1文字以上の数字にマッチし、複数の連続した数字にもマッチする。

正規表現(Regular Expression)はテキスト処理における強力なパターンマッチング機能です。

基本メタ文字:

「.」(ドット):任意の1文字にマッチします。ただし、言語やオプション設定により改行を含むかは異なります(通常は改行を除く)。

「*」と「+」:
- 「*」:直前のパターンが0回以上繰り返される(0回でもOK)
- 「+」:直前のパターンが1回以上繰り返される(最低1回必要)
- 例:「a*」は""、"a"、"aa"、"aaa"など全てマッチ
- 例:「a+」は"a"、"aa"、"aaa"などマッチするが""(空文字)はマッチしない

「^」と「$」:
- 「^」:文字列の開始位置を表すアンカー
- 「$」:文字列の終了位置を表すアンカー
- 例:「^abc$」は文字列全体が"abc"である場合のみマッチ

「[0-9]」:数字の範囲指定
- 「[0-9]」:0から9の1文字
- 「[0-9]+」:1文字以上の数字が連続する("123"、"9"など)

正しいのは「正規表現『[0-9]+』は1文字以上の数字にマッチし、複数の連続した数字にもマッチする」です。

「a|b」:選択(OR)
- 「a」または「b」の一方がマッチすればOK
- 両方が含まれる必要はありません(「a」だけでもマッチ)

← 前の問題問題一覧次の問題 →
アプリで解いてレーティングを上げる(無料・登録不要)