top of page

FileMakerで正規表現を使う 1/2

更新日:7月8日


こんにちは。ティーマネジメントの田中です。


早速ですが、このような経験はないでしょうか。

「『住所』から都道府県だけ抜き出して表示したいけど、どのように抜き出せばいいかわからない」

「大量のスペースで区切られた文字を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

bottom of page