2016-06-02 18 views
-2

DB拡張子を持つファイルを正規表現で選択しようとしています。私の正規表現は:正規表現 'が無効です'

*.db 

まだ私は '*'は正規表現を開始できないと言っているのですか?どのように、* .exeのようなものを入力するたびに、Windowsエクスプローラの検索ボックスで、私が望むものが得られます。つまり、.exeの拡張子を持つすべてのファイルです。
私はboost :: regexを使用しています。

+2

'* .db'が、それはワイルドカードパターン正規表現パターンではありません。 0以上の文字をマッチさせるには '。*'を使います。あなたの場合は、C文字列のバックスラッシュを正しくエスケープする方法がわからない場合は、 '^。* \。db $'(または '^。* [。] db $)が必要です。 –

+0

@WiktorStribiżewこんにちは、あなたの答えをありがとう。しかし、ユーザーが検索ボックスに正規表現を入力することは期待できません。ユーザー*はワイルドカードパターンがうまく動作することを期待します。ワイルドカードパターンを正規表現に変換する方法はありますか? –

+0

'*'を '。*'、 '?'で '.'に置き換え、他のワイルドカードサブパターンを処理し、特殊文字をエスケープします。 –

答えて

1

は、私はあなたが必要だと思う:

"(.*\\.db)" 

参考:Click here

関連する問題