Re: ACFinder 131024test版 exeのみ

このトピックの投稿一覧へ

なし Re: ACFinder 131024test版 exeのみ

msg# 1.3.2
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2013.10.25 09:47 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
今使ってて、「えごま(葉)」の上位分類一括検索で「野菜類(はくさい、えごま(葉)を除く)」の適用が表示されてしまうことに気がつきました。「○○を除く」削除部分の正規表現で、括弧のエスケープ処理ができてないのが原因です。
「豆類(未成熟)」とか「ぶどう(巨峰)[有核栽培]」など「(,),[,]」を含む作物名は、それぞれ「\(,\),\[,\]」にエスケープ処理しておく必要があります。
crop := 'さやいんげん|豆類(未成熟)|野菜類';
crop := AnsiReplaceStr(crop, '(', '\(');
crop := AnsiReplaceStr(crop, ')', '\)');
crop := AnsiReplaceStr(crop, '[', '\[');
crop := AnsiReplaceStr(crop, ']', '\]');
crop := AnsiReplaceStr(crop, '類', '(類)?'); //括弧のエスケープ処理が終わってから実行すること


あと、作物名検索で「ろじきゅうり」「露地きゅうり」が検索できません。露地きゅうりの正式作物名が、「きゅうり(露地栽培(直播栽培))」「きゅうり(露地栽培(移植栽培))」の2つで、「きゅうり(露地栽培)」じゃないのが原因のようです。
MACS では、検索キーワードを下記のように正規化してから作物名の検索をかけています。これで、「ろじきゅうり」「きゅうりろじ」どちらでも OK です。
ついでに、下2行は、「未成熟豆類」「豆類未成熟」を使えるようにするための正規化です。極端な話、「みまめ」「まめみ」でも「豆類(未成熟)」が検索できます。
$str = preg_replace('/(.*)?((露地|ろし|施設|しせつ|水耕|すいこう)(栽培|さいはい)?)(.*)?/', '\1\5\(\2', $str);
$str = preg_replace('/(未|み)(成熟|せいしゆく)?(豆|まめ)(類|るい)?/', 'まめるい\(みせいしゆく\)', $str);
$str = preg_replace('/(豆|まめ)(類|るい)?\(?(未|み)(成熟|せいしゆく)?\)?/', 'まめるい\(みせいしゆく\)', $str);
投票数:0 平均点:0.00

投稿ツリー

  条件検索へ