- PR -

済)ファイル名を複数の条件で検索する

投稿者投稿内容
kanai
ベテラン
会議室デビュー日: 2004/09/13
投稿数: 98
投稿日時: 2007-04-13 09:59
kanaiです。

私も以前にワイルドカードを正規表現に変換することを考え、以下のような関数を作成しました。

ワイルドカード"*.exe"は、正規表現では"[.]exe$"になりました。

コード:
    Private Function ToRegexPattern(ByVal pattern As String) As String
        Dim result As String
        result = pattern
        result = result.Replace(".", "[.]")
        result = result.Replace("\", "\\")
        result = result.Replace("^", "\^")
        result = result.Replace("[!", "[^")
        If result.StartsWith("*") Then
            result = result.Remove(0, 1)
        Else
            result = "^" & result
        End If
        If result.EndsWith("*") Then
            result = result.Remove(result.Length - 1, 1)
        Else
            result = result & "$"
        End If
        result = result.Replace("?", "(.)")
        result = result.Replace("*", "(.+?)")
        result = result.Replace("#", "[0-9]")
        Return result
    End Function



Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-04-13 21:59
 うん。でも、車輪の再発明はやだ。
というわけで、私ならこんなものを検討してみたりする。
デスクトップサーチ SDK<microsoft.com>
MSN SDK<microsoft.com>
む?検索コンパニオンとOffice アシスタントは一緒だと思ってた。失礼しました。

あれ?昔、どうやってやったんだろう?そこそこダウンロード数のあったツールで、やったんですけどね?

_________________
うちうせん
ベテラン
会議室デビュー日: 2003/08/08
投稿数: 96
お住まい・勤務地: 福岡県
投稿日時: 2007-04-18 12:09
ワイルドカードを正規表現に変換することで実装できました。
アドバイス等ありがとうございました。
_________________
by うちうせん

スキルアップ/キャリアアップ(JOB@IT)