带Power shell的Regex帮助-过滤并显示正确信息

带Power shell的Regex帮助-过滤并显示正确信息,regex,powershell,csv,Regex,Powershell,Csv,我正在powershell中工作,以筛选和显示CSV中的行中带有“[N/A]”的项目 以下是CSV“摘要”选项卡下的项目 下面的代码是我的代码,但它似乎没有显示N/A项 $CSV = Import-Csv "C:\Users\DS\Desktop\Scripts\Remove NA.csv" -Header "Summary" -Delimiter : foreach ($thing in $CSV){Write-Host $thing.Summary | where {$_.Sum

我正在powershell中工作,以筛选和显示CSV中的行中带有“[N/A]”的项目

以下是CSV“摘要”选项卡下的项目

下面的代码是我的代码,但它似乎没有显示N/A项

$CSV = Import-Csv "C:\Users\DS\Desktop\Scripts\Remove NA.csv" -Header "Summary" -Delimiter :  
foreach ($thing in $CSV){Write-Host $thing.Summary |  
 where  {$_.Summary -contains  '\[N/A\]'} }

这张表上有数千项,所以我认为正则表达式是实现这一点的方法。有没有更好的方法让它工作

虽然它本身并不违反CSV标准,但您提供的数据实际上并不是CSV。您只需使用“获取内容”,然后使用-match进行筛选:

Get-Content "C:\Users\DS\Desktop\Scripts\Remove NA.csv" | Where-Object{$_ -match ' \[N/A\] '}

保存?Excel?作为csv的工作表并不能使其成为csv—至少不是一个格式良好的csv

我将其视为纯文本文件,并将其视为纯文本文件

请参阅
get help about\u comparison\u operators
-contains不是基于正则表达式的,而是基于文本的


如果您想删除与
[N/A]
匹配的行,请将where from-contains更改为-notmatch与转义的
'\[N/A\]'

我们使用的服务将其导出为CSV文件。我正在尝试用[N/A]显示值。我可以担心再导出一次。文件名
Remove NA.csv
有点误导。然后将
-contains
更改为
-match
,那么您提供的示例数据不完整。我获取了您提供的数据,将其保存在一个文件中,使用了此代码,它在第1行和第2行(而不是第3行)显示。
Get-Content "C:\Users\DS\Desktop\Scripts\Remove NA.csv" | Where-Object{$_ -match ' \[N/A\] '}