Help us understand the problem. What is going on with this article?

【FileMaker】文字列を取り出す

More than 3 years have passed since last update.

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

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

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

(名前フィールドはテキストタイプでも計算でもどっちでも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 )  ;
)

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

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

tyuma
個人事業主として、様々な言語や現場を経験し、FileMakerの仕事をしています。 汎用機からイマドキまでこなしてきていますが、もう体力的にJavaは打ち止めにしたいです。。。 現在はFileMakerで小回りの効くシステム開発をメインにお仕事を受注しています。
https://www.youtube.com/channel/UC98aghnO5siL91xf6_24R5Q
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした