从文件名中抓取子字符串

时间:2016-06-15 13:41:21

标签: powershell

我有一个文件名列表:

No. 01 --- SOME NAME VARIABLE LENGTH---1214353.54343 Some more stuff.xlsx

所有都是类似的格式。我最需要的是:

1214353.54343

那是:

  1. 最后一次" ---"
  2. 之后的一切
  3. 到第一个[空间]
  4. 我如何在PowerShell中执行此操作?

1 个答案:

答案 0 :(得分:1)

您可以使用regex来绘制字符串:

.*---([\S]+)

Regular expression visualization

Regex Demo

PowerShell代码:

$fileName = "No. 01 --- SOME NAME VARIABLE LENGTH---1214353.54343 Some more stuff.xlsx"
[regex]::Match($fileName, '.*---([\S]+)').Groups[1].Value

<强>输出:

1214353.54343

编辑您的评论:

Get-ChildItem 'your_directory' -Recurse | foreach {
    if ($_.BaseName -match '.*---([\S]+)')
    {
        $Matches[1]
    }
}