【正規表現の基礎】複数条件指定/繰り返し/特殊文字/位置など
複数条件指定
【エンジニア募集中】フルリモート可◎、売上/従業員数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. 詳細はこちらから>