正規表現の初心者向けチュートリアル

正規表現は、regex または regexp と略されることが多く、検索パターンを定義する文字のシーケンスです。通常、文字列の一致、部分文字列の置換、テキストからの情報の抽出に使用されます。

正規表現を学ぶ理由

正規表現を学習すると、テキスト データを処理する能力が大幅に向上します。正規表現を使用すると、次のことが可能になります。

  • テキスト内の特定のパターンを検索します。
  • メールアドレスや電話番号などの入力データを検証します。
  • 日付や URL など、テキストの特定の部分を抽出します。
  • パターンに基づいてテキスト内の部分文字列を置き換えます。

正規表現の基本構成要素

正規表現はリテラル文字とメタ文字で構成されています。基本的なコンポーネントの一部を以下に示します。

  • リテラル文字: それ自体に一致する文字。たとえば、a は "a" と一致します。
  • メタ文字: .*+? など、特定の意味を持つ特殊文字。

一般的なメタ文字とその意味

メタ文字を理解することは、正規表現をマスターするための鍵です。最もよく使用されるメタ文字をいくつか紹介します。

  • . - 改行を除く任意の 1 文字に一致します。
  • * - 前の要素の 0 回以上の繰り返しに一致します。
  • + - 前の要素の 1 回以上の繰り返しに一致します。
  • ? - 前の要素の 0 回または 1 回の繰り返しに一致します。
  • [] - 括弧内のいずれかの文字に一致します。
  • {} - 前の要素の特定の出現回数を指定します。
  • () - 複数のトークンをグループ化し、キャプチャ グループを作成します。
  • | - OR 演算子として機能します。

基本的な正規表現パターンと例

いくつかの基本的な正規表現パターンとその動作を見てみましょう。

cat

正確な文字列 "cat" と一致します。

.at

"cat"、"bat"、"hat" など、1 つの文字の後に "at" が続く文字列に一致します。

\d{3}

"123"、"456"、"789" など、正確に 3 桁の数字に一致します。

[a-z]

"a" から "z" までの任意の小文字に一致します。

(dog|cat)

"dog" または "cat" のいずれかに一致します。

プログラミング言語における正規表現の使用

正規表現はさまざまなプログラミング言語で広くサポートされています。以下は Python と JavaScript で正規表現を使用する例です。

Pythonの例

import re

# Search for 'dog' in a string
pattern = r'dog'
text = 'The dog barked loudly.'
match = re.search(pattern, text)

if match:
    print('Match found:', match.group())
else:
    print('No match found')

JavaScript の例

// Search for 'dog' in a string
const pattern = /dog/;
const text = 'The dog barked loudly.';
const match = text.match(pattern);

if (match) {
    console.log('Match found:', match[0]);
} else {
    console.log('No match found');
}

結論

正規表現は、テキスト処理に携わるすべての人にとって強力なツールです。基本的なコンポーネントとパターンを理解して実践することで、プログラミング プロジェクトでテキストを処理および操作する能力を大幅に向上させることができます。さまざまなパターンを試して知識を深め、正規表現の可能性を最大限に引き出しましょう。