スプレッドなどを利用していると、関数を使う際によく出てくる言葉「正規表現」
合計を求める「SUM関数」などしか使ったことが無い人には、なんだか難しい事を言われているような気がしてきますよね?
スプレッドの関数ではいろんなことが出来るのですが、次のような場面で「正規表現」を活用します。
- 任意の文字だけ抽出(検索)したい。
- とある決まった文字以降(もしくは何文字目以降など)の文字列を長さに関わらず、全て抽出(検索)したい。
- 特殊文字そのものを抽出(検索)したい。もしくは特殊文字の前後の文字列を抽出(検索)したい。
他にもいろいろありますが、以上のような場面のときに「正規表現」を使うことで、求めたい結果を得ることができるようになります。
実際の使い方はそれぞれの関数を説明するときに触れていきますが、よく使う一般的な正規表現を一覧としてまとめました。
一般的な正規表現一覧
正規表現 | 名称 | 説明 |
---|---|---|
. | ピリオド | その位置にある任意の文字を表す |
* | アスタリスク | 全てを意味します。 |
+ | プラス | 直前の文字を 1 回以上繰り返す文字列の検索を表す。 |
? | クエスチョン | 直前の文字を含まない文字列も返されます。 |
^ | キャレット | 正規表現の先頭に挿入して使用する。 文字列がキャレットの直後の文字またはシーケンスで始まることを表す。 |
$ | ドル | 正規表現の末尾に配置して使用する。 文字列が直前の文字またはシーケンスで終わることを表す。 |
{A, B} | 波カッコ | 直前の語句を A~B 回繰り返す(A、B は数値)。 |
[x]、[xa]、[xa5] | 角カッコ | 文字セットの中の 1 つの文字のみがその位置で使用されることを示す。 |
[a-z] [A-Z] [0-9] | [a-z]はアルファベットの小文字全て。 [A-Z]はアルファベットの大文字全て。 [e-h]と書けば、efghが対象となります。 | |
\s | 空白文字 |
例えばよく使われる正規表現の一つ、「*」アスタリスク。
ab*
と表現すると、「abで始まり、その後の文字列が何でもよいので全て」
という意味合いになります。
また、「?」を使った例だと、
a?b
と表現すると、「aで始まり、1文字何でもよいから文字があり、bで終わる3文字」
というような意味合いになります。
使いたい関数をより便利に正確に使いたいときに、少しずつ覚えていくのが効率的かと思います。
最終的には正規表現は全て丸暗記した方が何かと便利ですが、困った時の備忘録として見ていただければと思います。
コメント