[Hiki-dev:00943] Re: 細かい修正

Back to archive index

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/>
  「恋とハックはアジャイルが命!」



Hiki-dev メーリングリストの案内
Back to archive index