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