这是一个RegEx问题而不是PS问题。在这里:
我有一个包含如下数据的文本文件。
ABC Corp, x567
xyz Corp, y567
pqr Corp, m567
ghysds ,inc, x567
TRWsdsdsds ,org, y567
TYUds ,ing, m567
如何从第4-6行删除第一个逗号? (这些行有两个逗号。我只需要第二个。)我的计划是将这些数据插入一个包含2列的表中。
谢谢。
答案 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;
}
}