Kazuhiko
kazuh****@fdiar*****
2005年 7月 14日 (木) 18:36:27 JST
かずひこです。 At Thu, 14 Jul 2005 18:24:24 +0900, Kazuhiro NISHIYAMA wrote: > > > これはちょっと違う気がします。で、現状でも 'aWikiName' がマッチしちゃうの > > > が気持ち悪いので、単語境界でマッチさせるようにしてこんな感じでしょうか? > > > > > > WIKINAME = '(\b(?:[A-Z][a-z0-9]+){2,}[A-Z]*\b)' > > > > 最初は\bを使おうと思ったのですが、$KCODEがNONEでないと利かないた > > め、$を使う方法にしました。 > > ...これもWin固有なんでしょうか...:'( > > $KCODEが"NONE"以外の時は\wに[A-Za-z0-9_]以外に日本語の文字も > 含まれるので、英単語の前後に日本語の文字が繋がっていると > 単語境界にならないからではないでしょうか? 正規表現のオプションに n を渡して、そこだけ $KCODE = 'NONE' でマッチさせ るようにしたらいいのかな。 $KCODE='e' WIKINAME = '(\b(?:[A-Z][a-z0-9]+){2,}[A-Z]*\b)' 'aLaTeXとLaTeXとLaTeXAとD008845A0FとWikiName'.scan(/#{WIKINAME}/) => [] 'aLaTeXとLaTeXとLaTeXAとD008845A0FとWikiName'.scan(/#{WIKINAME}/n) => [["LaTeX"], ["LaTeXA"], ["D008845A0F"], ["WikiName"]] -- かずひこ <http://wiki.fdiary.net/kazuhiko/> 「恋とハックはアジャイルが命!」