難易度・正答率・重要度
- 難易度:★★☆☆☆(正規表現の適用範囲)
- 正答率:★★★☆☆(用途の向き不向きで判断可能)
- 重要度:★★★☆☆(文字列処理の基礎)
問題文
正規表現は、さまざまな文字列を汎用的な形式で表現する方法の1つであり、テキストエディタ、プログラミング言語、検索エンジンなどで利用可能になっている。正規表現の用途に関する記述として、最も不適切なものはどれか。
ア
顧客名簿の電子メールアドレスから@より前の部分(ユーザ名)を取得する。
イ
店舗別売上高一覧から売上高の大きい上位5店舗を抽出する。
ウ
文章中の「METI」を「経済産業省」に置き換える。
エ
報告書の「3/31/2023」の形式で表記されている日付を「2023-3-31」の形式に変換する。
オ
領収書に記載するクレジットカード番号の一部を「*」で伏字にする。
出典: 中小企業診断協会|2023年度 第1次試験問題|経営情報システム(PDF)
解答
- 正解:イ(店舗別売上高一覧から売上高の大きい上位5店舗を抽出する)
解説(選択肢ごとの評価)
- ア:〇
メールアドレスのユーザ名抽出は、@の前方をパターンで取得する典型的用途(例:^([^@]+)@)。 - イ:×
「上位5店舗」の抽出は数値の大小比較・ソート・集計が必要で、正規表現の役割(文字列のパターン照合・置換)を超える。正規表現は順位付けや数値比較は不得意。 - ウ:〇
固定語の置換は正規表現が得意(例:METIを経済産業省に置換、語境界指定や大文字小文字指定も可能)。 - エ:〇
日付フォーマットの変換は、グループ化で抽出して並べ替え(例:(\d{1,2})/(\d{1,2})/(\d{4})→$3-$1-$2)。 - オ:〇
カード番号の一部マスクもパターンで可能(例:先頭・末尾以外を*に置換、(\d{4})\d+(?=\d{4})など)。
学習のポイント
- 正規表現の得意分野: 抽出・検証・置換・フォーマット変換などの“文字列パターン処理”。
- 不得意分野: ソート、ランキング、集計、数値計算はプログラムロジックやDB機能で対応。
- 組み合わせ設計: 正規表現で抽出→後段で数値処理・ソートという分離が実務では最も堅牢。