← クエスト一覧

クエスト52:正規表現(re)を使おう

スライド 1 / 6
コーデ
💻 コード例
実行結果
← クエスト一覧
🐍 Python / Quest 52 / 85

クエスト52:正規表現(re)を使おう

発展 +10 XP
🏠
今回の課題
'私は12歳で、身長は155cmです' から数字をすべて取り出して、リスト ['12', '155'] として表示しよう。
📖 解説を見る
🔎 正規表現(re)って何?

文字列の中から「パターン」に合う部分を、検索・抽出・置換できる仕組みです。\d は数字1文字、+ は「1回以上のくり返し」を表すので、\d+ は「1つ以上つながった数字」になります。

✏️ 書き方:
import re
re.findall(r'[a-z]+', 'ab-cd-ef')
 → ['ab', 'cd', 'ef']
re.findall(パターン, 文字列) は、パターンに合った部分を全部リストで返します。この例の [a-z] は「小文字1文字」、+ は「1回以上のくり返し」です。

📋 作るもの:
re.findalltext から「1つ以上つながった数字」を全部取り出す
・パターンは r'...'(raw文字列)の形で書く
・「数字1文字」を表す記号と、「1回以上のくり返し」を表す記号を組み合わせる(上の⚠️を見よう)
・結果を numbers に入れる。['12', '155'] になればOK

💡 どこで使う?

文章から必要な情報を取り出すときに大活躍します。メールアドレスや電話番号・URLの抽出、入力が正しい形式かのチェック、ログから数値だけ集める、といった文字列処理はほぼ正規表現で書けます。

⚠️ ポイント:
・パターンは r'...'(raw文字列)で書くのが基本
\d は「数字1文字」、+ は「1回以上のくり返し」
ヒントを見る
re.findall(パターン, 文字列) の形。パターンは r'...' で書いて、「数字1文字」の記号と「1回以上のくり返し」の記号を組み合わせよう。
期待する出力
['12', '155']
📄 見本
「答えを見る」を押すと、お手本のコードが出ます。クリックでコピーできます。
💻 コードエディタ
実行すると結果がここに表示されます
正解!見本と同じになりました。
次へ →
🏠 ホームへ

れんしゅうもんだい

☑ 0 / 3 正解 レッスンに戻る

全問正解でクエストクリア!

未挑戦

問題 1: 'abc123def456' の数字部分を全部 'X' に置き換えて表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
abcXdefX
未挑戦

問題 2: 'Hello World Python' から大文字始まりの単語を全部取り出して表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
['Hello', 'World', 'Python']
未挑戦

問題 3: '2026-06-15' が日付フォーマット YYYY-MM-DD かチェックして True を表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
True
コピーしました!