代码之家  ›  专栏  ›  技术社区  ›  BillyMadison

Powershell从文件名中提取编号

  •  0
  • BillyMadison  · 技术社区  · 8 年前

    文件名可以是:

    1234_billing.txt
    1234billling.txt
    123_billing.txt
    123billing.txt
    

    如何在所有4种情况下提取唯一的数字? 我试过了-拆分和$\u。BaseName。子字符串(),但似乎无法正确获取它。

    1 回复  |  直到 8 年前
        1
  •  2
  •   Jeff Zeitlin    8 年前

    假设文件名在数组变量中 $flist ,以下操作将实现此目的:

    foreach ($file in $flist) {
        if ($file -match "\d+") {
            $matches.value
        }
    }
    

    这个 -match 运算符将正则表达式模式作为其右操作数;在这种情况下,我们使用该模式 \d+ 表示任意非零个连续数字。运算符返回 $true $false ,并将匹配的子字符串存储在 $matches . 还有更多关于 -匹配 操作员位于 Get-Help about_Operators ,每个人都可以使用 reference for regular expressions .

    推荐文章