こんにちは。ティーマネジメントの田中です。
「『住所』から都道府県だけ抜き出して表示したいけど、どのように抜き出せばいいかわからない」
「大量のスペースで区切られた文字を1つのスペースに置き換えたい」
正規表現(Regular Expression)をうまく使用することで、特定の文字列を抜き出す、または変換する、といったことも可能になります。
今回は正規表現というものを、FileMakerで使用する方法について纏めました。
正規表現を使用することのできる関数は、FileMaker Pro 2023現在、実装されていません。
ある方法を使用することで、FileMakerでも正規表現を用いた計算が可能になります。
今回、正規表現についての簡単な説明と、実際の設定方法について、記事を分けて紹介します。
正規表現とは何か
まず、正規表現というものについて解説したいと思います。
正規表現を一言で表すなら、
「いくつかの文字列を一つの形式で表現するための方法」と言えます。
…
実例を交えた方が分かりやすいと思いますので、実例を交えて紹介します。
例えば、有名なこのロゴ、どこかで見たことがあるのではないかと思います。
このロゴを見て何を思いつくでしょうか?
そうです、おなじみのWindowsのロゴになります。
恐らく、これが何か、と聞いてみたらほとんどの人はWindowsと答えるはずです。
しかし、Windowsと言っても、文字にすると様々なWindowsがあるのではないでしょうか?
1. 「Windows」 一般的?な書き方
2. 「WINDOWS」 大文字で書いた
3. 「Windows10」 後ろに10がついている
4. 「Windows11」 後ろに11がついている
5. 「Windows 」 後ろにスペースがついている
…など
カッコの中を1単語として見たとき、それぞれ文字が大文字だったり小文字だったり、
10だったり11だったりしてバラバラですね。
これらをまとめて、1行の文字列で表すことができます。これが正規表現と呼ばれる考え方になります。
上のWindowsたちを実際に1行で表してみた例がこちらです。
W(indows|INDOWS) ?(1[01])?
表記方法は様々なルールがあるため、他にも記述方法はあると思います。
上の文字列を簡単に解説すると、次のようになります。
丸カッコ()の中は1つのグループになります。
「|」(パイプ)で「indows」「INDOWS」が区切られているため、
「indows」「INDOWS」の両方が当てはまる、という意味になります。
半角スペースの後についている「?」は、前の文字があってもなくてもよい、という意味になります。
[01]は、「0か1」の1文字という意味になります。
丸カッコ()と「?」と合わせると、
「10もしくは11という文字があってもなくてもいい」という意味になります。
この文字列で、本当に
1. 「Windows」 一般的?な書き方
2. 「WINDOWS」 大文字で書いた
3. 「Windows10」 後ろに10がついている
4. 「Windows11」 後ろに11がついている
5. 「Windows 」 後ろにスペースがついている
これらの文字列と一致しているのか、確かめたいと思います。
正規表現チェッカー様
Webサイトを使用させて頂きます。
正規表現が文字列とマッチしているか確かめることができます。
チェックしたい正規表現の欄に、先ほどの正規表現を記載します。
対象の文字列、Windowsたち5パターンを入力して試します。
実行結果が緑色になっていることから、マッチしていることが分かります。
正規表現の記載方法
正規表現は、「一つの形式で複数の表現をする」ため、いくつかの文字に対して特別な意味を与えています。
これらの文字はメタ文字と呼ばれます。
また、他にも正規表現で用いられる表記方法があります。
下記表に、記号の意味とよく使われる例を簡単にまとめました。
他にも意味をもつ例がありますが、この記事では割愛させて頂きます。
次回は、こちらの正規表現を、FileMakerで扱う方法について解説していきたいと思っています。 次の記事へ (2024/07/08追記) → FileMakerで正規表現を使う 2/2