我试图解析一些非常严重分隔的文件,并最终将它们更改为CSV。我希望匹配数字,空格和字母,并用逗号替换空格。
例如,如果我有“08:34:45家庭”的话。我希望能够认出这个' 5 h'并且#39; 08:34:45,家庭'。我理解为什么我下面的内容不能正常工作,但有人可以解释如何告诉Powershell我想保留\ d和\ D吗?
Get-Content -path C:\file.txt |
ForEach-Object {$_ -replace "(\d\s\D)",','}
答案 0 :(得分:2)
您在括号( )
中放置的内容由正则表达式捕获,您可以使用第一组$ 1,第二组$ 2等访问它。
所以你可以尝试两个捕获组:
$_ -replace '(\d)\s(\D)', '$1,$2'
另请参阅:http://www.powershelladmin.com/wiki/Powershell_regular_expressions#Example_-_Replace_With_Captures了解更多详情。