
Googleスプレッドシートで、正規表現を活用して文字列を置換する方法をご紹介します。REGEXEXTRACT関数と正規表現を活用して、文字列の一部を抽出する方法についても解説しているので、ぜひ参考にしてみてください。
正規表現とは
あいまいな文字列を検索するための手法の 1 つです。
メタキャラクタ(メタ文字)という記号を使って、文字列のパターンを表現します。

. は、任意の1文字を表します。
..リンゴ なら、リンゴの直前に2文字付くテキストが該当します。

.* は、0文字以上の任意の文字列の最長一致表します。
(.*)リンゴ なら、リンゴの直前が0文字以上のテキストが該当します。

.+ は、1文字以上の任意の文字列の最長一致を表します。
(.+)リンゴ なら、リンゴの直前が1文字以上のテキストが該当します。

[ ] は、「または」を表します。
..[都道府県] なら、都道府県のいずれかで終わり、その直前に2文字付くテキストが該当します。

.+? は、1文字以上の任意の文字列に最短で一致することを表します。
したがって、..+?[都道府県] は、都道府県名のいずれかで終わり、その直前に2文字が付くテキストを、可能な限り短い形で検索します。
一方 .+ は最長一致となるため、正規表現に一致するテキストを、最も長い形で検索します。
例えば、「京都府京都市」という文字列に対して、 ..+[都道府県] を用いると「京都府京都」が、..+?[都道府県] を用いると「京都府」が検索結果として得られます。
正規表現を使った置換

「検索と置換」を開き、「正規表現を使用した検索」にチェックを入れます。
検索欄に、 @(.*) を入力します。
.* は 0 文字以上の任意の文字列の最長一致です。
検索と置換のショートカットキー:[Ctrl]+[H]

メールアドレスの「@」より後ろの文字列を空白に置換します。

検索欄に \D を入力します。
\D は半角数字以外を表します。

電話番号の「ハイフン」を空白に置換します。

検索欄に (\n)+ を入力します。
\n は改行、+ は繰り返しを表します。

1つ以上の「改行」を空白に置換します。
正規表現を使った抽出

REGEXEXTRACT関数は、正規表現と最初に一致する部分文字列を抽出します。
例:=REGEXEXTRACT(A1,”(.*)@”)
.* は 0 文字以上の任意の文字列の最長一致を表します。
(.*)@ は「@」より前の全ての文字列です。
REGEXEXTRACT関数の引数:(テキスト, 正規表現)

メールアドレスの「@」より前の全ての文字列を抽出します。
( ) はその部分だけ抽出したり、複数の結果を抽出するのに使用します。
.*@ の場合、@を含めた「apple@」を返します。

例:=REGEXEXTRACT(A1,”@(.*)”)
@(.*) は @より後ろの全ての文字列です。

メールアドレスの「@」より後ろの全ての文字列を抽出します。

+? は直前の文字の 1 回以上の繰り返し、[ ] は角括弧内のいずれか 1 文字を表します。
..+?[都道府県] は直前が2文字以上の任意の文字列です。
例:=REGEXEXTRACT(A1,”..+?[都道府県]”)

「都道府県」のいずれかで終わるパターンと最初に一致する部分を抽出します。
+ と +? はどちらも直前の文字の1回以上の繰り返しですが、+ は一致するパターンをなるべく長く、+? は一致するパターンをなるべく短く抽出します。
京都府京都市の場合 + なら「京都府京都市」、+? なら「京都府」を抽出します。

\d は半角数字、\d+ は1文字以上の半角数字を表します。
例=REGEXEXTRACT(A1,”(\d+)-(\d+)-(\d+)”)

電話番号からハイフン抜きの数字を抽出します。
正規表現の抜粋一覧
. | 任意の1文字 |
[xyz] | []内のいずれかの1文字(-で範囲を指定) |
[^xyz] | []内の文字以外の1文字(-で範囲を指定) |
\d | 半角数字(==[0-9]) |
\D | 半角数字以外(== [^0-9]) |
x|y | x または y のいずれかの文字列 |
.* | 0文字以上の任意の文字列(最長一致) |
.+ | 1文字以上の任意の文字列(最長一致) |
.*? | 0文字以上の任意の文字列(最短一致) |
.+? | 1文字以上の任意の文字列(最短一致) |
^ | テキストの先頭(^.. なら先頭から2文字) |
$ | テキストの末尾(..$ なら末尾から2文字) |
\s | 空白文字(半角スペース、改行) |
\S | 空白文字(半角スペース、改行)以外 |
\w | 半角英数字とアンダースコア(== [0-9A-Za-z_]) |
\W | 半角英数字とアンダースコア以外(== [^0-9A-Za-z_]) |
(…) | キャプチャグループ |
\ | 直後の正規表現の記号を文字として検索する(\\ なら \ を検索) |