初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2018-06-19 14:46:05

takachome1102
Member

住所から市町村名だけ取り出す計算式?

こんにちは、

区市町村だけを住所から取り出せず困っています。

※「住所」には、都道府県は入っていません。

千代田区丸の内1-1-1 →千代田区
調布市多摩川1-1-1 →調布市

のように取り出したいのです。

Position ( 住所 ;"市";2;1)の答えが、
xの場合、left(住所;x)で拾えるなぁと楽観的に考えていたら、

市川市、今市市、町田市、村山市、市村 などがこれをすり抜けてしまいます!


市町村の文字が名称についている市町村
https://uub.jp/zat/todofukenmoji.html

これらは、
うまく、市町村の文字でpositionを拾えません。

すみませんが、
なにか良い方法ありましたら、教えていただけますか?

よろしくお願いします!

Offline

#2 2018-06-19 15:16:52

チポ
Member

Re: 住所から市町村名だけ取り出す計算式?

まともには無理では。

JPの郵便番号データを使えば何とかなりそうですが、
このデータは都道県の次は政令指定都市は例えば、
  札幌市中央区
となっています。

これでもいいでしょうか?

Offline

#3 2018-06-19 15:45:39

Hiro
Member

Re: 住所から市町村名だけ取り出す計算式?

対象となる地域の区市町村名のインデックスリストはあるのですか?
あるなら、「前方一致照合」リレーションを組めば、一発です。
ないなら、調達してください。必須です。

Offline

#4 2018-06-19 17:12:54

takachome1102
Member

Re: 住所から市町村名だけ取り出す計算式?

>チポさん

札幌市中央区という表示でもかまいません。

>Hiroさん

インデックスリスト、ないので探して入手します。
また、過去のスレをみて、
「前方一致照合」リレーションの参考ファイルを参照しました。


お二人とも有難うございました。
まだまだ自分のレベルが低いと思うので、
勉強のため、両方の方法でやってみます。

有難うございました。

Offline

#5 2018-06-19 17:29:02

チポ
Member

Re: 住所から市町村名だけ取り出す計算式?

解決
ですが、、

私とHiroさんが言っていることは同じですよ。
HiroさんのリストをJPのデータから持ってこようと言っています。

Offline

#6 2018-06-19 18:02:50

qb_dp
Member

Re: 住所から市町村名だけ取り出す計算式?

FileMakerもそろそろ正規表現が使えるようになってほしいですね。
外部ツールを使う方法の1例を書いておきます。

PowerShell と 以下のツールを使用します。

ProcessMakerTL(プロセス メーカー ティー エル)
https://sites.google.com/site/processmakertl/home
https://sites.google.com/site/processmakertl/download

ProcessMakerTL(プロセス メーカー ティー エル)を起動。
https://sites.google.com/site/processma … oot-method

FileMaKerのスクリプト例:

URL から挿入 [選択; ダイアログなし; PMTL::Result;
"http://127.0.0.1:8081/?target=powershell"
&"&Arguments="
& GetAsURLEncoded ( "$reg='(.{2,3}?[都道府県])((?:高市|静岡市|野々市|西村|西八代郡市|芳賀郡市|羽村|福岡市|神戸市|神崎郡市|相模原市|田村|熊本市|浜松市|武蔵村|横浜市|柴田郡村|杵島郡大町|東村|札幌市|新潟市|廿日市|広島市|川崎市|岡山市|大阪市|大町|大村|堺市|四日市|名古屋市中村|名古屋市|吉野郡下市|千葉市|十日町|北村|北九州市|余市郡余市|余市|佐波郡玉村|仙台市|京都市|中新川郡上市|さいたま市|.)?.*?[市区町村])(.*)';
$Result=[regex]::Matches( '東京都文京区後楽1丁目3−61',$reg);
$Result.Groups[1].Value;
$Result.Groups[2].Value;
$Result.Groups[3].Value;" )
]

戻り値:
東京都
文京区
後楽1丁目3−61



※正規表現については、以下のモノを使用しています。
住所を都道府県 / 市区町村 / 町域名に分ける正規表現 · GitHub
https://gist.github.com/zakuroishikuro/ … 93c4472109

Offline

#7 2018-06-19 19:58:56

Hiro
Member

Re: 住所から市町村名だけ取り出す計算式?

いやぁ~!qb_dpさん 凄技ですネ ^^;
こんな凝った手法、qb_dpさん 以外誰も考え付かない……。

仮設自家WebサーバでPowerShellサーバを立て、
そこから、「URLから挿入」でその正規表現の成果を取得する、
ですよネ?

ところで、全国「市区町村」の正規表現検索の特例リストは上記でその全てですか?
もし、こんなに少なくて済むとすると、さすが正規表現のサーチ能力はものすごく強力ですネ。

Last edited by Hiro (2018-06-19 20:42:02)

Offline

#8 2018-06-20 08:50:02

qb_dp
Member

Re: 住所から市町村名だけ取り出す計算式?

ところで、全国「市区町村」の正規表現検索の特例リストは上記でその全てですか?

正規表現については、チョコッと検索して見つけたモノを使用しています。自分では検証していません。
以下のとかもそのまま使えます。
https://qiita.com/zakuroishikuro/items/ … 20e3c73ce9

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.004 seconds, 9 queries executed - Memory usage: 517.88 KiB (Peak: 522.78 KiB) ]