2012-04-30 100 views
1

我對正則表達式沒有經驗,並且希望獲得關於刪除包含在csv文件中的文件名部分的可能解決方案的一些幫助和建議。PowerShell隔離字符串的部分

問題:

導出的文件名列表中包含一個隨機唯一標識符,我需要隔離。唯一標識符沒有可預測的模式,但是需要移除的方面可以。 「 - 」,「」,並與.PDF結束

V,-V,或20V%,接着用可能的空間,附加的隨機數序列:每個文件的名稱具有以下變化的一端

例子:

GTD-LVOE-43-0021 V10 0.PDF GTD-LVOE-43-0021-V34-2.PDF GTD-LVOE-43-0021_V02_9.PDF GTD-LVOE-43-0021 V49.9.PDF

解決方案:

我的計劃是編寫一個腳本來從字符串的末尾選擇V的第一個匹配項,然後將其刪除並將其右側的所有內容刪除。然後通過刪除字符串末尾出現的任何「 - 」或「_」和空格來清除文件名。

問:

我怎樣才能做到這一點與正則表達式,是我的思維甚至接近正確的方法來解決這一行?

+0

如果我理解正確,你試圖拉V10.PDF,V34-2.PDF,V02_9.PDF和V49.PDF(我認爲_V將是一個也是它的一部分)? – emragins

+0

立即嘗試。我其實也需要擺脫文件擴展名。我已經在目錄上做了一個gci並導出到csv,因此刪除它們不會導致問題。 – Steve

回答

1

正則表達式:[\s\-_]V.*?\.PDF

可能做的伎倆。你仍然需要取代任何領先 - 和_,但它應該讓你走上前進的道路,希望。

這內容如下..

開始用whitespace-_後跟一個V。然後採取一切,直到你到第一.PDF

+0

是的!!!!!完美無瑕地工作。最終代碼是一個簡單的(gc路徑)-replace'[\ s \ -_] V。*?\。PDF','' – Steve