Regex powershell替换文本通配符
我有一个csv导出,在那里我可以得到一些信息。第1行和第2行下面的4行中的任何一行都可以 第3行和第4行需要去掉2x,第4行我只希望名称henrietta在逗号后面,包括逗号都可以省略 我想用通配符代替数字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
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对其提供了极好的支持。直到现在才听说过它。我实现了这一点,效果很好。许多人直到现在才听说过这件事。我实现了这一点,效果很好。非常感谢