有一個簡單的任務,一直在搞亂我,我需要另外幾組眼睛。我確定我錯過了一些簡單的東西。我們有一個包含各種特殊字符的文件目錄,並且我需要刪除這些文件,只保留字母,數字,點(句點)和下劃線字符。我在PowerShell v2.0腳本中使用正則表達式。如何逃避正則表達式搜索一段時間?
例如:
!foo12.log
成爲foo12.log
foo1(bar)2.log
成爲foo1bar2.log
[foo]bar_.log
成爲foobar_.log
我的策略是使用和排除列表,並取代所有其他與""
。試想一下:
$bkpPath = "\\Server\foo"
gci $bkpPath | % {$_.name -replace "[^a-zA-z_0-9]",""}
當我跑了這一點,我結束了foo12log
,foo1bar2log
和foobar_log
所以我改變了正則表達式包括.
:[^a-zA-Z_\.0-9]
。這並不刪除任何特殊字符。我也試過[^a-zA-Z_\[\]\(\)\.0-9]
,結果和我逃過一段時期時一樣。
我懷疑有和我的逃生問題\.
和正則表達式正在閱讀它作爲通配符。如果那是怎麼回事,我該如何解決它?如果這不是什麼事情,我錯過了什麼?
有你試過'[^ az A-Z_.0-9]'? – ctn