【正規表現の基礎】複数条件指定/繰り返し/特殊文字/位置など

この記事を書いたチーム:frontier

複数条件指定

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

「|」バーティカルバーを使用することで複数の単語を検索できます。
「鈴木|宮本」と指定することで鈴木さんと宮本さんの両方を検索できました。

3つに区切ることで3人の名前を検索も可能です。
「鈴木|宮本|須藤」で検索します。

「()」 はグループ化を表します。()を利用して同じように複数の単語を検索できます。
「大(石|山|田)」 と指定して、()の中の石、山、田を|で区切ることで大石さん、大山さん、太田さんを検索できます。

文字クラスを使っても同じような検索ができます。「[]」角カッコを文字クラスといい、[]で囲まれた中のいずれか1つを表します。
「大[石山田]」と指定することで大石さん、大山さん、太田さんを検索できます。

検索したい文字が1文字の場合、「.」ドットを使った検索もできます。
「.」は、”何でもいいので一文字” を表すので、「大.」 と指定すると大から始まる2文字の単語を検索できます。

文字クラス使うと範囲検索も可能です。
「[0-9]」のように「-」ハイフンを使うと範囲検索ができます。[0-9]は0から9までの半角数字を検索できます。

同じように「[a-z]」はアルファベット半角小文字のaからzを検索できます。

繰り返し

「{n}」で直前の文字を指定回数繰り返す という意味になります。
サッ{2}カー」と指定すると”ッ” が2回繰り返されるのでサッッカーが検索されます。

{n}は範囲指定も可能です。{n,m} と指定することで直前の文字をn回以上、m回以下繰り返す という意味になります。「サッ{1,3}カー」 とすることでサッカー、サッッカー、サッッッカーが検索されます。

{n,m} でmを省略して {n,} と指定すると直前の文字をn回以上繰り返すと指定できます。
「サッ{1,}カー」と指定するとサッカー~サッッッッッカーが検索されます。

()でグループ化した単語を繰り返すこともできます。
「こんにちは(こんばんは){3}」と記述すると、こんにちはから続くこんばんはを3回繰り返す箇所を検索できます。

記号で繰り返しを指定することもできます。
「?」を指定すると直前の文字を0回以上1回以下繰り返すという意味になります。{0,1}と同じです。
「サッ?カー」で指定してみます。

「+」を指定すると直前の文字を1回以上繰り返すという意味になります。{1,}と同じです。
「サッ+カー」で指定してみます。

「*」を指定すると直前の文字を0回以上繰り返すという意味になります。{0,}と同じです。
「サッ*カー」で指定してみます。

「*」は「.」と組み合わせて、 文字.* と検索することで、「文字を指定し、後ろはなんでもいい」という条件で検索できるため非常に便利です。

位置

「^」キャレットで行頭を指定できます。^を使って「^080」と検索することで行頭の080が検索されます。

「$」で行末を指定できます。$を使って「080$」と検索すると行末の080が検索されます。

「^」と「$」と「.*」を組み合わせることで行全体を選択することもできます。
「^080.*1111$」と検索することで2行目以外の全ての行を選択できました。

特殊文字

改行文字を選択したい場合、
CR:\r
LF :\n
CRLF:\r\n
で選択できます。
田中さんの後にCR、鈴木さんの後にLF、吉田さんの後にCRLFを入れた状態で検索してみます。

「\r」で検索するとCRとCRLFが検索されます。

「\n」で検索するとLFとCRLFが検索されます。(CRLFは黄色くなっていませんが実際は検索されてます)

「\r\n」で検索するとCRLFが検索されます。

全ての改行文字を検索したい場合は「$\r?\n?」を指定します。

タブは「\t」で検索できます。

改行文字、タブに加え、全角スペース、半角スペース全てを同時に検索するには「\s」を使用します。

半角数字、全角数字を検索するには「\d」を使用します。

以上で紹介した正規表現を組み合わせると、電話番号の検索なども可能です。
半角の電話番号を検索する場合:「[0-9]{3}(\-[0-9]{4}){2}」

半角全角両方の電話番号を検索する場合:「\d{3}(\-\d{4}){2}」

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス