使用RegEx替换PowerShell字符串

时间:2014-03-14 00:56:57

标签: regex string powershell replace

这是一个RegEx问题而不是PS问题。在这里:

我有一个包含如下数据的文本文件。

ABC Corp, x567 
xyz Corp, y567 
pqr Corp, m567 
ghysds ,inc, x567 
TRWsdsdsds ,org, y567 
TYUds ,ing, m567

如何从第4-6行删除第一个逗号? (这些行有两个逗号。我只需要第二个。)我的计划是将这些数据插入一个包含2列的表中。

谢谢。

3 个答案:

答案 0 :(得分:2)

你必须使用预先检查以查看该行上是否有第二个逗号。

,(?=.*,)

使用此替换与空字符串匹配的任何内容。这将删除其中包含两个逗号的行的第一个逗号。

答案 1 :(得分:1)

这是我的:

$text = 
(@'
ABC Corp, x567
xyz Corp, y567 
pqr Corp, m567 
ghysds ,inc, x567 
TRWsdsdsds ,org, y567 
TYUds ,ing, m567
'@).split("`n")

$text -replace '(.+?),(.+?),(.+)','$1$2,$3'

ABC Corp, x567
xyz Corp, y567 
pqr Corp, m567 
ghysds inc, x567 
TRWsdsdsds org, y567 
TYUds ing, m567

答案 2 :(得分:0)

你真的不需要正则表达式,虽然它可行。

$StringList = @('abd,asdc,asdc', 'asdc,awegwe,aweg', 'asdfasdf,asdaweg');

foreach ($String in $StringList) {
    if ($String -match '.*,.*,') {
        $String.Remove($String.IndexOf(','), 1);
    }
    else {
        $String;
    }
}