powershell:从csv文件中提取数值之前的数据

powershell:从csv文件中提取数值之前的数据,powershell,csv,Powershell,Csv,我有一个奇怪的和有点复杂的问题与csv文件。CSV文件包含10K+记录。它包含应用程序版本的列表 佳能MF工具箱4.9.1.1.mf09 佳能MF工具箱4.9.1.1.mf11 佳能MF工具箱4.9.1.1.mf12 佳能MF工具箱4.9.1.1.mf14 佳能MF工具箱4.9.1.1.mf15 佳能MF工具箱4.9.1.1.mf16佳能MF工具箱 4.9.1.1.mf17佳能MF工具箱4.9.1.1.mf18 我需要先获取数据,然后再获取数值。因此,我的输出将包含佳能MF工具箱 这只是一个例子

我有一个奇怪的和有点复杂的问题与csv文件。CSV文件包含10K+记录。它包含应用程序版本的列表

佳能MF工具箱4.9.1.1.mf09 佳能MF工具箱4.9.1.1.mf11
佳能MF工具箱4.9.1.1.mf12 佳能MF工具箱4.9.1.1.mf14 佳能MF工具箱4.9.1.1.mf15 佳能MF工具箱4.9.1.1.mf16佳能MF工具箱 4.9.1.1.mf17佳能MF工具箱4.9.1.1.mf18

我需要先获取数据,然后再获取数值。因此,我的输出将包含佳能MF工具箱

这只是一个例子,有很多软件。我可以从PowerShell打开并读取csv,但我不确定如何获得我正在寻找的结果

Import-Csv c:\scripts\software.csv |`
    ForEach-Object {
        $Name += $_.Name
       write-host $name;
    }

任何建议。

您可以向ForEach对象迭代器添加一个排除数字的正则表达式

$Name = "Canon MF Toolbox 4.9.1.1.mf09 Canon MF Toolbox 4.9.1.1.mf11"

[regex]::Match($Name, "[A-Za-z_\s]*").captures.groups[0].value
返回

佳能MF工具箱


如果在发现数据中的新模式时需要修改正则表达式,我建议您是天才。我认为这是不可能的,你证明我错了。谢谢。我会测试并接受答案。