目次
JavaScript:正規表現とは?
JavaScriptにおける正規表現(Regular ExpressionsまたはRegExp)は、テキストの検索、置換、パターンマッチングなどの操作を行うための強力なツールです。以下に、初心者向けの正規表現についての説明を提供します。
正規表現の基本
正規表現は、文字列のパターンを定義するための表現方法です。これにより、特定の文字列のパターンを検索、抽出、置換できます。正規表現はスラッシュ(/
)で囲まれたパターンとして表現されます。
例えば、/apple/
は文字列中に現れる “apple” という文字列と一致します。
メタキャラクター
正規表現にはメタキャラクターと呼ばれる特殊な文字があります。これらは特別な役割を果たします。
.
: 任意の1文字に一致。^
: 行の先頭に一致。$
: 行の末尾に一致。*
: 直前のパターンが0回以上繰り返しに一致。+
: 直前のパターンが1回以上繰り返しに一致。?
: 直前のパターンが0回または1回に一致。\
: エスケープ文字。特殊なメタキャラクターを文字として扱う。
文字クラス
文字クラスは、指定された文字のいずれかに一致するかどうかをテストします。
[abc]
: a、b、またはcに一致。[^abc]
: a、b、c以外に一致。[a-z]
: aからzの範囲の任意の文字に一致。
量指定子
量指定子は、直前のパターンが何回繰り返されるかを指定します。
{n}
: 直前のパターンがちょうどn回に一致。{n,}
: 直前のパターンがn回以上に一致。{n,m}
: 直前のパターンがn回以上m回以下に一致。
グループ化とキャプチャ
括弧を使用して正規表現の一部をグループ化できます。これにより、グループ内のパターンに一致した部分を取得できます。
例えば、/(apple|orange)/
は “apple” または “orange” といういずれかに一致します。
JavaScriptでの正規表現の利用
JavaScriptでは、RegExp
オブジェクトや文字列のメソッドを使用して正規表現を利用できます。
const pattern = /apple/;
const text = "I have an apple.";
// testメソッドで一致を検証
console.log(pattern.test(text)); // true
// matchメソッドで一致した部分を取得
console.log(text.match(pattern)); // ["apple"]
実用的な例
- メールアドレスの検証:
const emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
const email = "example@example.com";
console.log(emailPattern.test(email)); // true
- 電話番号の検証:
const phonePattern = /^\d{3}-\d{4}-\d{4}$/;
const phoneNumber = "123-4567-8901";
console.log(phonePattern.test(phoneNumber)); // true
総括
正規表現は、テキスト処理において非常に強力で効果的なツールです。初めは複雑に感じるかもしれませんが、学び始めると柔軟性と便利さに驚かれるでしょう。正規表現を使いこなすことは、テキスト操作におけるスキル向上につながります。