0Pricing
Python Academy · レッスン

正規表現の基礎

メタ文字、文字クラス、量指定子、アンカーを学びます。

「正規表現の基礎」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。

概要

正規表現は、テキストを照合するためのパターンです。Pythonのreモジュールには、正規表現を使うためのツールが用意されています。

正規表現とは

正規表現は、検索パターンを構成する文字の並びです。r'\d+'は1個以上の数字にマッチします。
import re
print(re.findall(r'\d+', 'abc 123 def 456'))

リテラル文字

ほとんどの文字は自分自身にマッチします。r'cat'は文字列'cat'にそのままマッチします。
import re
print(re.search(r'cat', 'the cat sat'))

ドット(.)ワイルドカード

ドット.は、改行以外の任意の1文字にマッチします。r'c.t'は'cat'、'cut'、'c9t'にマッチします。
import re
print(re.findall(r'c.t', 'cat cut c9t caaat'))

文字クラス

[aeiou]は任意の母音にマッチします。[a-z]は任意の小文字にマッチします。[^abc]は{a,b,c}に含まれない任意の文字にマッチします。
import re
print(re.findall(r'[aeiou]', 'hello world'))

量指定子

*は0個以上、+は1個以上、?は0個または1個、{3}はちょうど3個、{2,4}は2個から4個を表します。
import re
print(re.findall(r'\d{2,4}', '1 12 123 1234 12345'))

アンカー

^は文字列の先頭にマッチします。$は末尾にマッチします。\bは単語境界にマッチします。
import re
print(re.findall(r'^\w+', 'hello world'))
print(re.findall(r'\b\w{4}\b', 'cat cats come home'))

省略形の文字クラス

\dは数字[0-9]、\wは単語構成文字[a-zA-Z0-9_]、\sは空白文字を表します。大文字の\D、\W、\Sはそれぞれの否定です。
import re
print(re.findall(r'\w+', 'hello, world!'))

選択 |

r'cat|dog'は'cat'または'dog'のいずれかにマッチします。括弧でグループ化できます。r'(cat|dog)s'は'cats'または'dogs'にマッチします。
import re
print(re.findall(r'cat|dog', 'I have a cat and a dog'))

貪欲マッチと最短マッチ

.*は貪欲で、可能な限り多くの文字にマッチします。.*?は最短マッチで、可能な限り少ない文字にマッチします。
import re
html = '<b>bold</b> and <i>italic</i>'
print(re.findall(r'<.*>', html))   # greedy
print(re.findall(r'<.*?>', html))  # lazy

正規表現でのRaw文字列

正規表現パターンでは、二重バックスラッシュによるエスケープを避けるため、常にr'...'を使います。'\\d'ではなくr'\d'と記述します。
import re
# Without r: '\\d+' is needed
# With r:    '\d+' is sufficient
print(re.findall(r'\d+', 'abc123'))

クイックチェック

正規表現で、\bアンカーは何にマッチしますか?

まとめ

正規表現の基本:.(任意の文字)、[](文字クラス)、* + ? {}(量指定子)、^ $ \b(アンカー)、\d \w \s(省略形)、|(選択)、貪欲マッチと最短マッチ。常にr''文字列を使います。

続けましょう

素晴らしい成果です!次のレッスンが待っています。

よくある質問

「正規表現の基礎」レッスンは無料ですか?

はい。「正規表現の基礎」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。

「正規表現の基礎」で何を学びますか?

メタ文字、文字クラス、量指定子、アンカーを学びます。 ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Python Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「正規表現の基礎」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPython Academyレッスンでコードを書いて実行できますか?

はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 正規表現の基礎
  2. re.match、re.search、re.findall の使い方
  3. グループと名前付きキャプチャ
  4. re.sub、フラグ、コンパイル済みパターン
← Python Academyに戻る