Regex powershell替换文本通配符

Regex powershell替换文本通配符,regex,powershell,powershell-4.0,Regex,Powershell,Powershell 4.0,我有一个csv导出,在那里我可以得到一些信息。第1行和第2行下面的4行中的任何一行都可以 第3行和第4行需要去掉2x,第4行我只希望名称henrietta在逗号后面,包括逗号都可以省略 我想用通配符代替数字 Linda bobbyjoe 2 x ash 3 x Henrietta,suzyann,waynebruce,parkerpeter 目前我使用如下。只是,我还没有解决部分问题,我还没有在网上找到我能理解的答案 $filepath = "c:\mycsv.csv" $bad2 = "2

我有一个csv导出,在那里我可以得到一些信息。第1行和第2行下面的4行中的任何一行都可以

第3行和第4行需要去掉2x,第4行我只希望名称henrietta在逗号后面,包括逗号都可以省略

我想用通配符代替数字

Linda
bobbyjoe
2 x ash
3 x Henrietta,suzyann,waynebruce,parkerpeter
目前我使用如下。只是,我还没有解决部分问题,我还没有在网上找到我能理解的答案

$filepath = "c:\mycsv.csv"

$bad2 = "2 x "
$good2 = `b

$bad2 = "3 x "
$good2 = `b

get-content $filepath  | % { $_ -replace $bad2 , $good2 } | % { $_ -replace $bad3 , $good3 } | set-content $saveloc\tidied-$date.csv

你熟悉正则表达式吗?请参阅标记wiki,并查看

PowerShell中的-replace操作符使用正则表达式替换,因此很容易替换任何digitspaceliteral xspace:

$bad2 = '\d x '
# or
$bad2 = '[0-9] x '

# better
$bad2 = '^\d x '

get-content $filepath  | % { $_ -replace $bad2, $good2 }
更好的版本将匹配锚定到字符串的开头;这就是插入符号的作用


正则表达式功能非常强大,PowerShell对它们有极好的支持。

您熟悉正则表达式吗?请参阅标记wiki,并查看

PowerShell中的-replace操作符使用正则表达式替换,因此很容易替换任何digitspaceliteral xspace:

$bad2 = '\d x '
# or
$bad2 = '[0-9] x '

# better
$bad2 = '^\d x '

get-content $filepath  | % { $_ -replace $bad2, $good2 }
更好的版本将匹配锚定到字符串的开头;这就是插入符号的作用


正则表达式非常强大,PowerShell对其提供了极好的支持。

直到现在才听说过它。我实现了这一点,效果很好。许多人直到现在才听说过这件事。我实现了这一点,效果很好。非常感谢