GoogleスプレッドシートとGoogleドキュメントは正規表現を使った検索及び置き換えが可能です。
正規表現とは
正規表現とは、文字列の集合を一つの文字列で表現する方法の一つである。正則表現とも呼ばれ、形式言語理論の分野では比較的こちらの訳語の方が使われる。まれに正規式と呼ばれることもある。
Wikipedia
Googleスプレッドシートに入力される情報が膨大になり複雑になると、単純な文字列の検索だけでは意図した情報にたどり着くのも難しくなります。
- 「山田太郎」と「山田 太郎」のどちらで検索すれば良いのか
- 「先頭がアルファベット」の文字列だけ検索したい
この様な事が解決できる検索方法があればと思いませんか?
正規表現を使えば、検索方法の幅も広がり、複雑な指定で検索をする事が可能になります。
それでは、正規表現を使った検索方法を紹介したいと思います。
Googleスプレッドシートで正規表現を使った検索のしかた
Googleスプレッドシートで検索するには、
メニューの 編集 > 検索と置換
表示された”検索と置換”から検索できます。
チェックボックス「正規表現を使用した検索」にチェックを入れると”正規表現”で検索します。
一般的な正規表現で検索
Googleスプレッドシート、Googleドキュメント どちらの検索でも使える正規表現
. | その位置にある任意の文字 |
* | *直前の文字を 0 回以上繰り返す文字列の検索 |
+ | +直前の文字を 1 回以上繰り返す文字列を検索 |
? | ?直前の文字を含まない文字列も検索 |
{1,3} | 直前の語句を{}の回数繰り返した文字列を検索 |
[ab] | 検索したい文字を並べた文字セット |
[a-z] [0-9] | a~zや0~9など検索したい語句の範囲を指定 |
[^aiu] | []で囲んで先頭に^を入れた文字セットは検索されない |
\s | 空白文字を表します |
任意の位置にワイルドカードを指定して検索
ピリオド「.」を使うとワイルドカードを指定して検索する事ができます。
山.県
「山」と「県」の間にワイルドカードを設定して、都道府県一覧を入力したシートを検索してみます。
“山形県”・”山梨県”・”山口県”が検索されました
「山」と「県」の間にワイルドカードを設定したので、「山」と「県」がある”富山県”は検索されません。
直前の文字を含まない文字列も検索
「指定の文字を含めて検索する」又は「指定の文字を含めないで検索する」
「?」を使うと、この2つを同時に検索できます。
指定の文字の直後に「?」を付けると、文字を含めない文字列 も 含める文字列 も 検索します。
フランシスコ・?ザビエル
「・」の直後に”?”を付けて、以下のシートを検索します。
“フランシスコ・ザビエル”・”フランシスコザビエル” の2つが検索されました。
「・」がある文字列と無い文字列を検索しますが、「空白文字」は対象ではないので検索されません。
文字を繰り返す文字列を検索
「*」と「+」はどちらも文字を複数回繰り返す文字列を検索しますが違いは、
- 「*」は 0回以上繰り返す文字列
- 「+」は 1回以上繰り返す文字列
こく*じら で ”こじら”・”こくじら”・”こくくじら” と入力したシートを検索します。
“こじら”・”こくじら”・”こくくじら” すべて検索されました。
ポイントは、”く” が無くても検索される事。
「*」は 0回以上の繰り返し なので文字が無くても検索されます。
今度は こく+じら で 同じ内容のシートを検索します。
“こくじら”・”こくくじら” の2つが検索されました。
「+」は 1回以上繰り返す文字が必要なので、”く” が無い “こじら” は検索されません。
繰り返す文字を含んだ文字列は「*」と「+」を使って検索できますが、「*」と「+」は繰り返す回数を指定できません。
繰り返す回数を指定して文字列を検索する場合は
{1,3}
数字を{}で囲むと回数を設定できます。
“c”の後に”o”が1回又は2回続く文字列を検索する場合は
c(o{1,2})
これで動物名一覧シートを検索します。
“cow”・”raccoon dog”の2つが検索されました。
“o”が1回又は2回連続する文字列なので、”cooow”とか”raccooooon dog” は検索されません。
指定の文字セットが含まれている文字列を検索
指定の位置に候補の検索文字がある場合は
[ab]
候補の検索文字を並べた文字セットを[]で囲みます。
県の前が「岡」、「本」、「口」のどれかに当てはまる文字列を検索したい場合
[岡本口]県
“岡本口”を[]で囲んで 後に「県」を付けて、都道府県シートを検索します。
「県」の前に”岡”、”本”、”口”のどれかが入っている文字列、
“静岡県”・”山口県”・”福岡県”・”熊本県” が検索されました。
語句の範囲を指定して検索
アルファベットや五十音、数字など語句の範囲を指定して検索する場合は
[a-z]
「-」を指定する範囲で挟んで[]で囲みます。
「こ」の後に五十音順で「あ」~「こ」の範囲の語句が入る文字列を検索する場合。
こ[あ-こ]
「こ」の後に五十音順で指定したい範囲を[]で囲んで動物名一覧シートを検索します。
一覧から”こあら”・”こうもり”・”こくくじら”が検索され、”こびときつねざる”は検索されませんでした。
「こ」の後の “あ”・”う”・”く” は「あ~こ」の範囲にありますが、こびときつねざるの “び” は範囲外なので検索されません。
指定の範囲は、五十音順以外に、[a-z][A-Z][0-9]も可能です。
指定の文字セットが含まれてない文字列を検索
指定の文字セットを外して文字列を検索する場合は
[^aiu]
文字セットの前に「^」を付けて[]で囲みます。
「ま」の前に ”く”・”ぬ”・”い” 以外の文字が入っている文字列を検索する場合
[^くぬい]ま
動物名一覧シートを検索します。
“しまうま” と “うま” が検索されました。
“しろくま”・”くま” は 文字セットに “く” が入っているので検索されませんでした。
空白文字を検索
空白文字を検索する場合は
\s
スペースやTABの空白文字を含めて検索する場合
\sdog
「dog」の前に”\s”を付けて動物名一覧シートを検索します
たぬきの”raccoon dog”が検索されました。
空白文字が無い”dog”は検索されません。
Googleスプレッドシートでのみ使える正規表現の検索
Googleスプレッドシートのみで使える正規表現
^ | 文字列の先頭文字だけを検索する |
$ | 文字列の末尾文字だけを検索する |
先頭の文字列だけ検索
先頭の文字列だけを指定して検索するには
検索したい文字列の前に
^
を付けて検索します。
都道府県が入力されたシートの中から先頭に「岡」の付いた都道府県名を検索したい場合
正規表現を使わずに
「岡」
で検索すると
“静岡県”・”岡山県”・”福岡県”の3県が検索にヒットしてしまいます。
先頭以外に「岡」が入っている文字列も検索されてしまい、これは意図した検索結果ではありません。
“先頭が「岡」” だけを検索したい場合は
「^岡」
として検索文字列の直前に「^」を入れて検索します。
これで検索すると
“岡山県”だけが検索にヒットしました。
先頭が「岡」の”岡山県”だけが検索され、「岡」が文字列の先頭じゃない”静岡県”・”福岡県”は検索されませんでした。
末尾の文字列だけ検索
今度は逆に末尾の文字列だけを検索したいと思います。
末尾の文字列だけを指定して検索するには
検索したい文字列の後に
$
を付けて検索します。
都道府県の中から「府」のだけを検索したい場合は
「府$」
として検索文字列の直後に「$」を入れて検索します。
これで検索すると
“京都府”・”大阪府”の2府を検索する事ができました。
正規表現を組み合わせて検索する
正規表現はそれぞれ単体では無く、組み合わせて使うことが出来ます。
先頭が「広」又は「福」、後半が「島県」の文字列を検索
^[広福]島県
「^」で先頭を指定して[広福]で”広”・”福”のどちらかを含む文字列を、都道府県一覧シートで検索します。
“福島県”・”広島県” が検索されました。
正規表現はもっと複雑な組み合わせも可能なので、状況に合わせて考えてみてください。
まとめ:正規表現を使って賢く検索
正規表現を使った検索方法を紹介しました。
検索対象が膨大で複雑になると、単純な文字列の検索方法では、なかなか意図した検索結果にならずに苦労する事があると思います。
正規表現を使った検索方法だと、膨大で複雑になった検索対象でも、意図した検索結果を導き出す可能性が高くなります。
是非、正規表現を使って検索してみてください。
|
|
国内で10年前からサービスを提供しているタスク管理・プロジェクト管理ツール。
利用者が100万人を超え、エンジニアの方以外にも、事務やデザイナー、マーケター、営業など、多様な職種の方にお使いいただいています。 |
|
|
|
|
|