Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What is going on with this article?

More than 5 years have passed since last update.

@tyuma

【FileMaker】文字列を取り出す

最近メール本文から情報を抽出する事例をやったので、備忘録です。
文字列から対象の文字列を抽出して、テーブルの各フィールドにセットします。

テーブル構成は、次の通りです。

フィールド名 タイプ
本文 テキスト
名前 計算

(名前フィールドはテキストタイプでも計算でもどっちでもOK)
例えば、以下のような本文フィールドにメール内容をセットした際、名前フィールドには本文から抽出した名前がセットされるように処理をします。

本文は、以下のような例文とします。

お申し込みありがとうございます。

以下の内容で承りました。
[お名前] なんとか かんとか
[生年月日] 2000/1/1

名前フィールドの計算式として、Letの中で抽出する文字列の識別子となる「[」と「]」に囲まれた開始文字位置と終了文字位置をpositionで求め、識別子分の文字数をLengthで求めた後、Middleで本文から識別子以降の該当の文字列を抽出します。

Let ( 
      [ 
moji% = "[お名前]" ; 
pos_start% = Position ( 本文 ; moji% ; 1 ; 1 ) ;
moji_cnt% = Length ( moji% ) ; 
pos_end% = Position ( 本文 ; "¶" ; pos_start% ; 1 ) - 1 ;
      ] ; 
if(pos_start%  ≠  0;Middle ( 本文 ; pos_start% + moji_cnt% ; pos_end% - ( pos_start% + moji_cnt% ) + 1 )  ;
)

ちなみに、「[お名前]」が本文になかったことを考え、開始ポジションが取得できたときのみ処理しています。

あと、「[お名前]」の他に「[名前]」のような識別子が混在していた場合は、また今度。

3
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
3
Help us understand the problem. What is going on with this article?