namazu-dev(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
 Re: (1999-12-27m) mknmz: invalid wakati module: chasen
藤原  誠 Makoto Fujiwara <makoto@xxxxxxxxxxxx> wrote:
>最後に付けたように変更したのですが(commit はしていません) 、
パッチを適用して commit …しようと思ったら、ただいま
openlab.ring.gr.jp に繋がらないので、のちほど commit します。
>こんどは次のようになります。
>chasen: The format of the patricia dictionary is invalid.
うーん、なんだろう。手元では問題なく動作しています。
>ChaSen2 の make の辺りを見直して見ます。
僕が気を付けたのは Text::ChaSen モジュールを make する前に 
libchasen.a を /usr/local/lib に置いたくらいです。
-- Satoru Takabayashi
おまけ: Perl 5.6 で実現される再帰的正規表現に興味を持ち、開
発版の perl5.00563 で実験を行いました。パターンの中に自分自
身のパターンを含めることができます。
この機能により、対応する括弧やタグを、それらが入れ子構造になっ
ていても確実にマッチングできます。(XML対応の一環なのでしょう)
試しに、回文のパターンマッチングをする再帰的正規表現を書いて
みました。実に面白いです。:-)
$re = qr{
     (\w)
     (\w|(?p{ $re  })*)
     \1
}x;
while (<DATA>) {
    chomp;
    print "target:  $_\n";
    if ($_ =~ $re) {
	print "matched: $&\n";
    } else {
	print "matching FAILED!\n";
    }
    print "\n";
}
__DATA__
aa               // valid
aaa              // valid
abcba            // valid
abccba           // valid
axcdefcddcfedcxa // valid
a                // invalid
ab               // invalid
abc              // invalid
abcdecba         // invalid
abcbb            // sub-kaibun
abcdedcbxa       // sub-kaibun
実行結果
target:  aa               // valid
matched: aa
target:  aaa              // valid
matched: aaa
target:  abcba            // valid
matched: abcba
target:  abccba           // valid
matched: abccba
target:  axcdefcddcfedcxa // valid
matched: axcdefcddcfedcxa
target:  a                // invalid
matching FAILED!
target:  ab               // invalid
matching FAILED!
target:  abc              // invalid
matching FAILED!
target:  abcdecba         // invalid
matching FAILED!
target:  abcbb            // sub-kaibun
matched: bcb
target:  abcdedcbxa       // sub-kaibun
matched: bcdedcb