TypeScriptの正規表現について深くわかりやすく解説します。
この記事を通じて、正規表現の基本的な概念から RegExp
オブジェクトの作成方法、そして文字列のマッチングテクニックまで学ぶことができます。
RegExp
: 正規表現の基本正規表現は文字列のパターンを表現するための強力な機能です。
その基本となるのが RegExp
オブジェクトですね。
let regex1 = new RegExp('ab+c');
let regex2 = /ab+c/;
上記は2つの方法で正規表現を作成しています。
1つ目の方法はコンストラクタを使用し、2つ目の方法はリテラル表現を使用しています。
それぞれの正規表現が意味しているのは以下のとおりです。
なので、この正規表現は以下のような文字列にマッチするわけですね。
abc
(b が1回)abbc
(b が2回)abbbc
(b が3回)ただし、ac
(b が0回)や aabcc
(a が2回)などの文字列にはマッチしません。
Regexp.prototype.test()
: マッチするか確認
.test()
メソッドは 文字列が正規表現に合致するかどうか をブール値で返します。
let patternHello = /hello/;
let testResult = patternHello.test('hello world');
console.log(testResult); // true
このコードでは hello world
に hello
という文字列が含まれているかを確認しています。
この場合含まれているため、結果的に true
が返されます。
このように .test()
メソッドを使うと、文字列の中に特定のパターンが含まれているかどうか を一瞬で確認できます!
Regexp.prototype.exec()
: マッチ情報をゲット続いて、.exec()
メソッドは 文字列内でのマッチの詳細情報を取得 できます。
例えば以下のようなコードです。
let patternABC = /a(b)c/;
let matchInfo = patternABC.exec('Hey, abc is here!');
console.log(matchInfo[0]); // abc
console.log(matchInfo[1]); // b
このコードでは、Hey, abc is here!
の中で a(b)c
というパターンを見つけ、マッチした部分とキャプチャグループの情報を取得しています。
キャプチャグループは正規表現内の括弧 ()
で囲まれた部分を指し、この例では b
が該当します。
String.prototype.match()
: 文字列の視点からのマッチ
最後に文字列メソッドである .match()
は、正規表現に合致する部分を配列で返します。
let phrase = "The rain in Spain stays mainly in the plain";
let matchedParts = phrase.match(/ain/g);
console.log(matchedParts); // ['ain', 'ain', 'ain']
このコードでは The rain in Spain stays mainly in the plain
という文字列から ain
というパターンを繰り返し探し、マッチした値を配列で取得しています。
また、/g
フラグにより文字列全体でのすべてのマッチを取得できます。
このように正規表現を使いこなすと特定の値を取得する際にとても役立つため、覚えておくと便利です!
TypeScriptの短絡評価の使い方「&&」「||」「??」の解説
TypeScriptのタイマー関数setTimeoutとsetIntervalの使い方
TypeScriptの多次元配列の使い方についてわかりやすく解説
TypeScriptでのタプルの使い方と実践テクニックを解説
TypeScriptのimport typeをわかりやすく解説
TypeScriptの配列やオブジェクトのソート完全ガイド
TypeScriptコメントアウトの使い方 完全ガイド
TypeScriptのオブジェクトとプロパティの存在チェック完全ガイド
TypeScriptで即時関数を使う方法を解説!基本から実践的な使い方まで