REGEXMATCHでパターンを検証する
テキストがパターンに一致するかを確認し、TRUEまたはFALSEを返します。
「REGEXMATCHでパターンを検証する」はCoddyKit上の無料Excel Formulas Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはExcel Formulas Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Excel Formulas Academyコースには全4レッスンが含まれています。
単純な検索よりパターンが優れている理由
特定の単語が1つあるかどうかだけを確認したいとは限りません。たとえば、このセルには数字が含まれているか、有効なメールアドレスの形式かといった、より柔軟な問いを調べたい場合があります。
正規表現(regex)は、テキストの形式を表す小さなパターン言語です。Google Sheetsでは、REGEXMATCH、REGEXEXTRACT、REGEXREPLACEという3つの関数を使って正規表現を利用できます。
このレッスンでは最初の関数に焦点を当てます。REGEXMATCHは、テキストがパターンに一致するかどうかを、単純に「はい」または「いいえ」で返します。
REGEXMATCHの構文
REGEXMATCHは、確認するテキストと、検索するパターンという2つの引数を受け取ります。テキスト内のどこかにパターンが見つかるとTRUEを、見つからない場合はFALSEを返します。
注:この関数はGoogle Sheetsに用意されています。Excelでは別のツールを使うため、ここではGoogle Sheetsを前提に説明します。
最も単純なパターンは、リテラルテキストの一部分です。次の数式は、セルA2にcatという単語が含まれているかを確認します。
=REGEXMATCH(A2, "cat")大文字と小文字を区別して一致する
正規表現による一致では、デフォルトで大文字と小文字が区別されます。パターンcatは、テキストCATには一致しません。
どちらの大文字・小文字にも一致させるには、角括弧内に選択肢を並べます。[Cc]atはCatとcatの両方に一致します。
次の数式は、A2に最初の文字がどちらの大文字・小文字でもよいcatが含まれている場合にTRUEを返します。
=REGEXMATCH(A2, "[Cc]at")アンカー:先頭と末尾
正規表現では、パターンがテキストのどこに位置する必要があるかを指定するアンカーを使えます。
^はテキストの先頭を意味します$はテキストの末尾を意味します
アンカーがなければ、どこか1か所で一致すれば該当します。アンカーを使うと位置を制御できます。次の数式は、A2がINVで始まる場合だけTRUEを返します。請求書コードの検出に便利です。
=REGEXMATCH(A2, "^INV")数字用の文字クラス
文字クラスは、使用できる文字のグループを表します。最も一般的なショートカットは\dで、0から9までの任意の1桁の数字を意味します。
次のパターンは、A2のどこかに数字が少なくとも1つ含まれているかを確認します。+は1つ以上を意味するため、order7ではTRUE、helloではFALSEになります。
=REGEXMATCH(A2, "\d+")実例:数字を含むセルを見つける
A列に商品名が入っているとします。Shirt 12のようにサイズを含むものもあれば、含まないものもあります。どのセルに数字が含まれているかを、TRUE/FALSEのフラグで示したいとします。
次の数式をB列に下方向へコピーしてください。数字を1つでも含む行にはTRUEが表示され、テキストだけの行にはFALSEが表示されます。その列を基準にフィルタリングできます。
=REGEXMATCH(A2, "\d")繰り返し使える代表的なクラス
いくつかのショートカットで、ほとんどの用途に対応できます。
\d任意の数字\w任意の英字、数字、またはアンダースコア\sスペースやタブなど、任意の空白文字.任意の1文字
独自の文字クラスを作ることもできます。[A-Z]は任意の大文字、[a-z]は任意の小文字を意味します。次の数式は、A2に大文字が含まれているかを確認します。
=REGEXMATCH(A2, "[A-Z]")量指定子で個数を制御する
量指定子は、その直前の要素が何回繰り返されるかを指定します。
+1つ以上*0個以上?0個または1個(省略可能){3}ちょうど3個
A2が先頭から末尾まで5桁のZIPコードかどうかを確認するには、次のようにアンカーと、個数を正確に指定する量指定子を組み合わせます。
=REGEXMATCH(A2, "^\d{5}$")実例:メールアドレスの形式を検証する
メールアドレスのように見えるセルにフラグを付けることができます。大まかですが実用的なパターンは、いくつかの文字、@、さらにいくつかの文字、ドット、そして2文字ほどの英字という構成です。
次の数式は、sam@site.comではTRUEを、not-an-emailではFALSEを返します。完全な検証ではありませんが、連絡先リストにある明らかな誤りを見つけられます。
=REGEXMATCH(A2, "^[\w.]+@[\w.]+\.\w{2,}$")REGEXMATCHとIFを組み合わせる
REGEXMATCHはTRUEまたはFALSEを返すため、そのままIFに組み込めます。これにより、単なる真偽値ではなく、わかりやすいメッセージを表示できます。
次の数式は、数字を含むかどうかに応じて、各セルにHas numberまたはText onlyというラベルを付けます。
=IF(REGEXMATCH(A2, "\d"), "Has number", "Text only")特殊文字をエスケープする
正規表現では、いくつかの文字が特殊な意味を持ちます。. + * ? ( ) [ ] ^ $ \などです。これらの文字そのものに一致させたい場合は、前にバックスラッシュを置きます。
ドットそのものを確認するには、単なる.ではなく\.と記述します。単なる.は任意の文字に一致するためです。次の数式は、A2に実際にピリオドが含まれている場合だけTRUEを返します。
=REGEXMATCH(A2, "\.")理解度チェック
REGEXMATCHとパターンの理解度を確認しましょう。
振り返り:パターンで「はい」または「いいえ」
REGEXMATCH(text, pattern)は、Google SheetsでTRUEまたはFALSEを返すことを学びました。重要なポイントは次のとおりです。
- パターンは、単なる完全一致の単語ではなく、テキストの形式を表します
\d \w \s .は便利な文字のショートカットです^と$は先頭と末尾を指定します+ * ? {n}は要素の繰り返し回数を制御します\.のように特殊文字をエスケープすると、その文字そのものに一致させられます
次は、パターンを検証する段階から、一致したテキストをREGEXEXTRACTで取り出す段階へ進みます。
よくある質問
「REGEXMATCHでパターンを検証する」レッスンは無料ですか?
はい。「REGEXMATCHでパターンを検証する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Excel Formulas Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Excel Formulas Academyコースには全4レッスンが含まれています。
「REGEXMATCHでパターンを検証する」で何を学びますか?
テキストがパターンに一致するかを確認し、TRUEまたはFALSEを返します。 ブラウザで直接実行するハンズオンコードでExcel Formulas Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Excel Formulas Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのExcel Formulas Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「REGEXMATCHでパターンを検証する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このExcel Formulas Academyレッスンでコードを書いて実行できますか?
はい。すべてのExcel Formulas Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- REGEXMATCHでパターンを検証する
- REGEXEXTRACTでパターンを取り出す
- REGEXREPLACEでパターンを置換する
- 乱雑なデータを分割して整える