Powershell:使用从正则表达式哈希表检索到的值添加列

Powershell:使用从正则表达式哈希表检索到的值添加列,powershell,csv,Powershell,Csv,我是Powershell的新手,我正在尝试基于特定列向csv文件添加一列,以及另一个包含正则表达式列表和关联值的csv文件 阅读许多关于导入Csv和选择对象的帖子,我可以做一些改进 第一个匹配值应用于填充新列,在本场景中称为“preference” 输入 data.csv regex.csv 使用单个正则表达式输出:OK 第一次尝试.ps1 第一次尝试输出.csv 使用多个正则表达式输出:卡滞 预期的_result.txt 我如何修改上面的代码,以便能够迭代regex_键并获得预期的结果 非常感

我是Powershell的新手,我正在尝试基于特定列向csv文件添加一列,以及另一个包含正则表达式列表和关联值的csv文件

阅读许多关于导入Csv和选择对象的帖子,我可以做一些改进

第一个匹配值应用于填充新列,在本场景中称为“preference”

输入

data.csv

regex.csv

使用单个正则表达式输出:OK

第一次尝试.ps1

第一次尝试输出.csv

使用多个正则表达式输出:卡滞

预期的_result.txt

我如何修改上面的代码,以便能够迭代regex_键并获得预期的结果


非常感谢您的帮助。

我将使用
foreach
迭代模式(不使用
foreach对象
不覆盖
$\ucode>,但您可以修改以匹配您的首选项):

$data=Import Csv.\data.Csv-分隔符“;”
$patterns=导入Csv。\regex.Csv-分隔符“;”
$data |选择对象*,@{Name='preference';表达式={
foreach($p,以$patterns表示){
if($\u.name-匹配$p.'regex\u key'){
$p.优惠
打破
}
}
}}
if
中,如果检测到任何匹配,我将使用
break
停止循环执行

id name    first_name
-- ----    ----------
35 ALPHA   UNIFORM   
48 BRAVO   VICTOR    
39 CHARLIE WHISKEY   
42 DELTA   X-RAY     
59 ECHO    YANKEE    
64 FOXTROT ZULU      
regex_key preference
--------- -----   
LP        MUSIC 
VO        VSOP
CH        CHORIZO 
.*        OTHER   
$single_preference = Import-Csv .\data.csv |`
                     Select-Object *,
                                   @{Name='preference';
                                     Expression={if($_.name -match "CH"){"CHORIZO"} else {"OTHER"}}
                                    } |`
                     Export-Csv -Path ".\first_attempt_output.csv" -NoTypeInformation
id name    first_name preference
-- ----    ---------- ----------
35 ALPHA   UNIFORM    OTHER     
48 BRAVO   VICTOR     OTHER     
39 CHARLIE WHISKEY    CHORIZO   
42 DELTA   X-RAY      OTHER     
59 ECHO    YANKEE     CHORIZO   
64 FOXTROT ZULU       OTHER  
id name    first_name preference
-- ----    ---------- ----------
35 ALPHA   UNIFORM    MUSIC    
48 BRAVO   VICTOR     VSOP   
39 CHARLIE WHISKEY    CHORIZO
42 DELTA   X-RAY      OTHER   
59 ECHO    YANKEE     CHORIZO
64 FOXTROT ZULU       OTHER