正規表現入門ガイド

正規表現は、一般的に regex または regexp と呼ばれ、検索パターンを形成する文字のシーケンスです。主に文字列のマッチングと操作に使用されます。正規表現は、テキストからのデータの検索、置換、抽出に非常に効果的です。

基本的な構文

正規表現は、リテラル文字とメタ文字と呼ばれる特殊文字の組み合わせで構成されます。基本的なコンポーネントは次のとおりです。

  • リテラル文字: これらは、それ自体に一致する通常の文字です。たとえば、正規表現 cat は文字列 "cat" と一致します。
  • メタ文字: これらの文字には特別な意味があり、複雑なパターンを構築するために使用されます。例としては、.*+?[]{}()| などがあります。

一般的なメタ文字

以下は、最もよく使用されるメタ文字とその機能の一部です。

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

基本パターンの例

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

cat

テキスト内の任意の場所に文字列 "cat" が一致します。

.at

"a" の後に任意の文字が続き、その後に "t" が続く文字列と一致します。たとえば、"cat"、"bat"、"hat" などです。

\d{3}

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

[a-z]

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

(dog|cat)

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

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

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

Pythonの例

import re

# Search for 'cat' in a string
pattern = r'cat'
text = 'The cat sat on the mat.'
match = re.search(pattern, text)

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

JavaScript の例

// Search for 'cat' in a string
const pattern = /cat/;
const text = 'The cat sat on the mat.';
const match = text.match(pattern);

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

結論

正規表現は、テキスト処理とデータ抽出のための強力なツールです。基本的な構文と一般的なパターンを理解することで、プロジェクトで正規表現を活用し、テキスト操作機能を効率化および強化することができます。さまざまなパターンを練習し、正規表現の高度な機能を調べて、より熟練したスキルを身につけましょう。