[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends:00404] Re: 文字列にある文字列が含まれるかどうかを調べる方法 ( 大文字小文字を区別しない)



石黒です。

>大崎様
> 正規表現を使う場合、部分的にもマッチしない箇所は比較が行われないはずです。
この部分の意味が良く分かりませんし、矛盾があると思います。
「マッチしない箇所」を発見するためには、コンピュータのアーキテクチャ上、まず
比較を行う必要があると思いますが、どうなんでしょう。

正規表現の解釈がコンピュータの内部でどの様に実装されているかは具体的には知り
ませんが、「検索対象の文字列と同じサイズの文字列」は1つ以上作業用に確保して
いると思いますし、小文字か大文字に統一するなどして、バンバン比較処理が行われ
ているかと思います。
そうしないと処理できないはずです。
再度強調したいのは、
> > コンピュータのアーキテクチャにもう少し考えを届かせたほうがよいか
> > と思います。
ということです。

よろしく。


----- Original Message ----- 
From: "大崎 洋平" <osaki@xxxxxxxxxxxxxx>
To: <jfriends@xxxxxxxxxxxx>
Sent: Sunday, August 22, 2004 8:46 AM
Subject: [jfriends:00395] Re: 文字列にある文字列が含まれるかどうかを調べる方
法 ( 大文字小文字を区別しない)


> 大崎です。
>
> > > 今回は、たくさんのデータを検索するので、すべて小文字か大文字に
> > > するのはちょっとパフォーマンスが悪くなるのでは。。とおもった
> > 思うのは自由ですが、ちょっと筋が悪いと思います。
> > コンピュータのアーキテクチャにもう少し考えを届かせたほうがよいか
> > と思います。
>
> .... snip ...
>
> > > すべて小文字か大文字で統一して indexOf で調べるのが
> > やり方としておかしくないし、効率的であることが想像できます。
>
> そうでしょうか?
> indexOf()を使った場合、検索対象の文字列と同じサイズの文字列をもう一つ作
> ることになりますよね。
> そして、そのすべての文字列を調べて、大文字、小文字を入れ替えることになり
> ますよね。
> 本当に効率的だといえますか?
>
> 正規表現を使う場合、部分的にもマッチしない箇所は比較が行われないはずです。
> (つまり、大文字、小文字の変換も行われません。)
> 私にはこちらのほうが効率的に思えるのですが。
>
> 大島さんの調査報告をお待ちしております。
>
> -- 
> /** 大崎 洋平 (Yohei Osaki)
>  * @e-mail osaki@xxxxxxxxxxxxxx
>  *
>  * XML Based Application Architecture (XAA)
>  * http://www.xaa.jp/
>  */
>
>
>