Powershell从import-csv替换字段中的文本

时间:2018-04-12 19:37:22

标签: powershell import-csv

我正在通过Sub cellsTest() Dim i As Long Dim price As Long For i = 1 To 100 If IsNumeric(Cells(i, 6)) Then price = Cells(i, 6).Value MsgBox (price) End If Next i End Sub 阅读大型 csv 文件,并且有一列数据格式如下; v00001048 v00019045 v0036905 。我想在v之后但在任何数字不是零之前替换所有的零(0),以便上面的文本成为; v-1048 v-19045 v-36905 。在没有成功结果的情况下完成大量搜索。

1 个答案:

答案 0 :(得分:1)

如果您的CSV(例如,' data.csv')包含以下数据:

Property1,Property2,Property3
SomeText,MoreText,v00001048

然后,您可以使用此技术替换Property3中的前导零:

$data = Import-csv .\data.csv 

$data | 
    ForEach-Object {
        $_.Property3 = $_.Property3 -replace "(?<=v)0+(?=\d+)","-"
    }

如果该属性没有任何前导零(例如v1048),这将使其保持不变。如果您希望插入&#39; - &#39;无论如何,然后将正则表达式模式更改为:

"(?<=v)0*(?=\d+)"