正規表現を使って文字列のマッチングを行うJavaScriptのmatch()メソッドについて、基本的な使い方から実践的な例まで詳しく解説します。
match()メソッドの基本
match()メソッドは、文字列に対して正規表現パターンでマッチングを行い、マッチした結果を配列として返すメソッドです。
const text = "Hello, JavaScript!";
const result = text.match(/JavaScript/);
console.log(result); // ["JavaScript"]基本的な使い方
単純な文字列マッチング
const str = "Hello, World!";
const result = str.match(/World/);
console.log(result[0]); // "World"グローバルマッチング(gフラグ)
const text = "apple, banana, apple, cherry";
const results = text.match(/apple/g);
console.log(results); // ["apple", "apple"]大文字小文字を区別しない(iフラグ)
const text = "Hello HELLO hello";
const results = text.match(/hello/gi);
console.log(results); // ["Hello", "HELLO", "hello"]実践的な使用例
メールアドレスの抽出
const text = "Contact us at info@example.com or support@example.com";
const emails = text.match(/[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g);
console.log(emails); // ["info@example.com", "support@example.com"]数字の抽出
const text = "The price is $123.45 and quantity is 50";
const numbers = text.match(/\d+(\.\d+)?/g);
console.log(numbers); // ["123.45", "50"]戻り値について
match()メソッドの戻り値は、マッチングの結果によって異なります:
- マッチした場合(gフラグなし):マッチ情報を含む配列
- マッチした場合(gフラグあり):マッチした文字列の配列
- マッチしない場合:null
const text = "JavaScript is awesome";
console.log(text.match(/Python/)); // null注意点とベストプラクティス
1. nullチェック
match()がnullを返す可能性があるため、必要に応じてnullチェックを行いましょう。
const text = "Hello, World!";
const result = text.match(/Python/);
if (result) {
console.log("マッチしました:", result[0]);
} else {
console.log("マッチしませんでした");
}2. フラグの適切な使用
目的に応じて適切なフラグを使用しましょう:
- g:グローバルマッチ
- i:大文字小文字を区別しない
- m:複数行マッチ
const text = `Line 1
Line 2
Line 3`;
const lines = text.match(/^Line/gm);
console.log(lines); // ["Line", "Line", "Line"]まとめ
match()メソッドは、JavaScriptで文字列のパターンマッチングを行う際の強力なツールです。正規表現と組み合わせることで、複雑な文字列処理も簡単に実装できます。ただし、nullの戻り値や適切なフラグの使用など、いくつかの注意点に気をつける必要があります。
上記の例を参考に、自身のプロジェクトで効果的にmatch()メソッドを活用してください。