作者: 藤岡和夫
日時: 2007/10/21(09:57)
On Sun, 21 Oct 2007 09:12:31 +0900
藤岡和夫 <kazuf@...> wrote:

> String::Approxは日本語でもテキストをUTF-8で保存して適用すれば使えると思
> われます。

 乗りかかった舟だからテストしました^^;)

-----^ agreptest.pl
use String::Approx 'amatch';

while(<>){
	$line++;
	print $line,": ", $_ if amatch("ハンカチ王子",['5']);
}
-----$

入力テキストは、「[TSfree:2239] Re: 最も人気あるプログラミング言語」を
UTF-8に変換して使いました。

modifierとはthe amount of approximateness(近似量)の意味で、単に文字数と
いうことではないようです。%も使えるようなので検討されるとよいと思います。

modifier: ['2']の場合
---------------------
[c:\sites\tsnetwork]
perl agreptest.pl agreptest.txt
21: # usage: gawk -f agrep.awk 2 ハンカチ王子 agrep.txt
41: ハニカミ王子
43: ハナカミ王子
46: ハダカノ王子
48: トンカツ王子

modifier: ['3']の場合
---------------------
[c:\sites\tsnetwork]
perl agreptest.pl agreptest.txt
21: # usage: gawk -f agrep.awk 2 ハンカチ王子 agrep.txt
41: ハニカミ王子
43: ハナカミ王子
46: ハダカノ王子
47: ハルカゼ王子
48: トンカツ王子

modifier: ['4']の場合
---------------------
[c:\sites\tsnetwork]
perl agreptest.pl agreptest.txt
21: # usage: gawk -f agrep.awk 2 ハンカチ王子 agrep.txt
41: ハニカミ王子
42: ハゲカケ王子
43: ハナカミ王子
44: ハミガキ王子
45: ハイカイ王子
46: ハダカノ王子
47: ハルカゼ王子
48: トンカツ王子

modifier: ['5']の場合
---------------------
[c:\sites\tsnetwork]
perl agreptest.pl agreptest.txt
21: # usage: gawk -f agrep.awk 2 ハンカチ王子 agrep.txt
41: ハニカミ王子
42: ハゲカケ王子
43: ハナカミ王子
44: ハミガキ王子
45: ハイカイ王子
46: ハダカノ王子
47: ハルカゼ王子
48: トンカツ王子
53: とをすれば可能でしょうね。まず/..カチ王子/,/.ン.チ王子/,...みたいなパター

UTF-8のコンソールがないと大変かもしれませんね。結局、Aprotool TM Editor
のコンソールを使わせていただきました^^)v

藤岡 和夫
kazuf@...
日曜プログラマのひとりごと http://homepage1.nifty.com/kazuf/renewal.html