2012-04-30 47 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