買太郎'sキャッシュメモリFab

キャッシュ生産中。。。

目次

ニュース

ledys bikoujun

日記カテゴリ

書庫

ギャラリ

Blog 利用状況

検索コンパニオンでの半角スペースの謎

先週から、ファイル検索ツールを作っているんだけど。
ファイル名をワイルドカード検索対応しよう!っと思ったので
ワイルドカードぽい動きを正規表現(System.Text.RegularExpressions.Regex)で実装(C#)。


実装したワイルドカードは、
[*]:0文字以上の文字列
[?]:1文字の文字列
ってのが仕様です。

ある程度出来たので、Windowsのエクスプローラの検索コンパニオンと比較テスト
(検索コンパニオンの犬は、ローバー犬のロッキー君らしいです)

そこで、わかった事が!
ロッキー君は、検索キーワードに半角スペースを入れると、想定外の結果を返す。
(私の思い込みの想定外ですが)

***********以下 ロッキー君でのファイル検索テスト結果************

<検索対象フォルダに格納されているファイル一覧>
データダウンロード.xls
データダウン[半角スペース]ロード.xls
データダウン[半角スペース][半角スペース]ロード.xls
データダウン[全角スペース]ロード.xls
データダウン@ロード.xls
データダウン@@ロード.xls
データダウン@ロード.xls
関係ない.xls

【検証1】
検索文字:
  ダウンロード
ヒットファイル:
  ダウンロード.xls


【検証2】
検索文字:
  ダウン[半角スペース]ロード
ヒットファイル:
  データダウンロード.xls
  データダウン[半角スペース]ロード.xls
  データダウン[半角スペース][半角スペース]ロード.xls
  データダウン[全角スペース]ロード.xls
  データダウン@ロード.xls
  データダウン@@ロード.xls
  データダウン@ロード.xls


【検証2】
検索文字:
  ダウン[半角スペース][半角スペース]ロード
ヒットファイル:
  データダウンロード.xls
  データダウン[半角スペース]ロード.xls
  データダウン[半角スペース][半角スペース]ロード.xls
  データダウン[全角スペース]ロード.xls
  データダウン@ロード.xls
  データダウン@@ロード.xls
  データダウン@ロード.xls


【検証3】
検索文字:
  ダウン[全角スペース]ロード
ヒットファイル:
  データダウン[全角スペース]ロード.xls


【検証4】
検索文字:
  ダウン[半角スペース]@[半角スペース]ロード
ヒットファイル:
  データダウン@ロード.xls
  データダウン@@ロード.xls


【検証5】
検索文字:
  ダウン[半角スペース]@@[半角スペース]ロード
ヒットファイル:
  データダウン@@ロード.xls


【検証6】
検索文字:
  ダウン*ロード
ヒットファイル:
  なし


【検証7】
検索文字:
  *ダウン*ロード*
ヒットファイル:
  データダウンロード.xls
  データダウン[半角スペース]ロード.xls
  データダウン[半角スペース][半角スペース]ロード.xls
  データダウン[全角スペース]ロード.xls
  データダウン@ロード.xls
  データダウン@@ロード.xls
  データダウン@ロード.xls


【検証8】
検索文字:
  *ダウン[半角スペース]ロード*
ヒットファイル:
  なし


【検証9】
検索文字:
  ???ダウン?ロード????
ヒットファイル:
  データダウン[半角スペース]ロード.xls
  データダウン[全角スペース]ロード.xls
  データダウン@ロード.xls
  データダウン@ロード.xls


【検証10】
検索文字:
  ???ダウン[半角スペース]ロード????
ヒットファイル:
  なし


【検証11】
検索文字:
  [半角スペース]
ヒットファイル:
  データダウンロード.xls
  データダウン[半角スペース]ロード.xls
  データダウン[半角スペース][半角スペース]ロード.xls
  データダウン[全角スペース]ロード.xls
  データダウン@ロード.xls
  データダウン@@ロード.xls
  データダウン@ロード.xls
  関係ない.xls


【以下推測】
どうやら、*、?の一般的なワイルドカードを使わない検索の場合に使う半角スペースは、
*と同様に、0文字以上の文字列に相当する。

ただし、キーワードに *、? があると。。。その機能は変わる。
【検証8】で、
データダウン[半角スペース]ロード.xls
が、ヒットしないのは謎
どのようになるかは、不明
(誰か知ってる人は教えてください。)

全角スペースは、文字として認識されワイルドカードのような機能は無いようだ。


まあ、そんな感じなので、俺俺ワイルドカードメソッドは、
*と?のみの対応にしよう。。。



検証環境 WinXp Pro Sp2

投稿日時 : 2007年2月20日 13:09

Feedback

# re: 検索コンパニオンでの半角スペースの謎 2007/02/20 14:34 がんふぃーるど

半角スペースは半角スペースで区切られたそれぞれの文字のAND条件なんでないかな?

# re: 検索コンパニオンでの半角スペースの謎 2007/02/20 14:55 買太郎

がんふぃーるどさん どうもです。
ロード[半角スペース]ダウン

ダウン[半角スペース]ロード
の検索結果が同じところをみると、そのようです!
AND条件が使えるのか!それは知らんかった!

もうちょっと、試してみますが、すっきりです。

ありがとうございました。

# EAVftCZBdYsSKk 2011/11/28 20:06 http://www.hatleystore.com/department.aspx?DeptId=

Well, actually, a lot of what you write is not quite true !... well, okay, it does not matter:D

# MotopLGNmwOZMgY 2011/12/16 0:31 http://www.upscalegallery.com/

I serched through the internet and got here. What a wonderful invention of the mankind. With the help of the network you communicate, learn, read !... That helped us to get acquainted!...

タイトル
名前
Url
コメント