最終目標は、最小限のコードで正規表現ユースケースの大部分をカバーできるくらい十分堅牢な構文を提供することです。 1文字と一致させる まずはじめに、1文字のパターンと1文字で構成される文字列を引数に取り、一致するかしないかを示すブール値を返す関数を作成してみます。1文字のパターンである . はワイルドカードとされ、任意の文字リテラルと一致します。 下記のようなかんじです matchOne('a', 'a') -> true matchOne('.', 'z') -> true matchOne('', 'h') -> true matchOne('a', 'b') -> false matchOne('p', '') -> false function matchOne(pattern, text) { if (!pattern) return true // 任意テキストが空パターンと一致
![40行以内で正規表現エンジンを構築 | POSTD](https://cdn-ak-scissors.b.st-hatena.com/image/square/1975b94f173ee714b5df326e9f7fb84da7344e4d/height=288;version=1;width=512/https%3A%2F%2Ffanyv88.com%3A443%2Fhttps%2Fpostd.cc%2Fwp%2Fwp-content%2Fuploads%2F2015%2F05%2F14598392170_ac019b29f8_z-e1437939400486-500x334.jpg)