我遇到了一些問題,試圖從一些文件中的某些貨幣值中提取數千個分隔符。 「壞」值用逗號和雙引號分隔。在那裏有其他值是< $ 1000沒有問題。現有文件的使用正則表達式替換csv中的千位分隔符
示例:
實施例的"12,345.67",12.34,"123,456.78",1.00,"123,456,789.12"
期望文件(已刪除千位分隔符):
"12345.67",12.34,"123456.78",1.00,"123456789.12"
我發現了一個正則表達式的表達式的數字與該工作很大隔板匹配,但是我在替換運算符時遇到了問題。重置價值讓我感到困惑。我讀了約$ &,我想知道我是否應該在這裏使用。我嘗試了$ _,但是這會拉出所有我的逗號。我是否必須以某種方式使用$匹配?
這裏是我的代碼:
$Files = Get-ChildItem *input.csv
foreach ($file in $Files)
{
$file |
Get-Content | #assume that I can't use -raw
% {$_ -replace '"[\d]{1,3}(,[\d]{3})*(\.[\d]+)?"', ("$&" -replace ',','')} | #this is my problem
out-file output.csv -append -encoding ascii
}
使用import-csv,然後你可以循環遍歷行和項目,從每個項目中刪除逗號,同時構建新行,然後將新行保存到覆蓋它的文件中。 –