PowerShell で正規表現ドット `.` と `..` を指定してファイル/ディレクトリを検索しますか?

PowerShell で正規表現ドット `.` と `..` を指定してファイル/ディレクトリを検索しますか?

PowerShell では、ある意味では、限定された範囲で正規表現を実行できると思います。もっと多くのことができることは間違いありませんが、なぜここにないのかわかりません。正規表現を使用してファイル/ディレクトリを指定しようとしています。

たとえば、「qwe」というディレクトリがある場合、次のように表示されます。

PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\[qwe][qwe][qwe]

d----        24/08/2014   1:28 PM            qwe

でもできない

PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\q.e

(qweディレクトリを取得するため)

そしてもし私が

PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\..

その後、ディレクトリに戻りますが、正規表現を使用して、2文字以上または2文字のファイル/ディレクトリに一致させる方法が見つかりません。..

ただし、正規表現のこの側面はサポートされています [abcd] ('a' または 'b' または 'c' または 'd' に一致する文字クラス) または [az] ですが、[abcd] は結果が 1 文字の場合にのみ一致するため、正規表現らしくありません。適切な正規表現では、通常、その文字を含むすべてのものと一致 (その文字が複数ある場合も含む) します。

答え1

ドットはファイル名に対して特別な意味を持つため、このようなタイプのフィルタリングには Where-Object (またはその短縮形) を使用する必要があります。

Get-ChildItem . | Where-Object { $_.Name -match '^q.e$' }

関連情報