這是一個比PS更正確的RegEx問題。這裏是:使用正則表達式替換PowerShell字符串
我有一個文本文件,數據如下。
ABC Corp, x567
xyz Corp, y567
pqr Corp, m567
ghysds ,inc, x567
TRWsdsdsds ,org, y567
TYUds ,ing, m567
如何從第4-6行中刪除第一個逗號? (這些行有2個逗號,我只需要第二個。)我的計劃是將這些數據插入到一個2列的表格中。
謝謝。
這是一個比PS更正確的RegEx問題。這裏是:使用正則表達式替換PowerShell字符串
我有一個文本文件,數據如下。
ABC Corp, x567
xyz Corp, y567
pqr Corp, m567
ghysds ,inc, x567
TRWsdsdsds ,org, y567
TYUds ,ing, m567
如何從第4-6行中刪除第一個逗號? (這些行有2個逗號,我只需要第二個。)我的計劃是將這些數據插入到一個2列的表格中。
謝謝。
你必須使用前瞻來檢查行上是否有第二個逗號。
,(?=.*,)
使用此來替換它的任何一個空字符串相匹配。這將擺脫它們中有兩個逗號的第一個逗號。
這是最優雅的方式。 –
謝謝卡布!非常好的答案。不幸的是,作爲一個新手,我無法宣傳你的答案。 – RaviLobo
你並不需要正則表達式,儘管它可以工作。
$StringList = @('abd,asdc,asdc', 'asdc,awegwe,aweg', 'asdfasdf,asdaweg');
foreach ($String in $StringList) {
if ($String -match '.*,.*,') {
$String.Remove($String.IndexOf(','), 1);
}
else {
$String;
}
}
這裏是我的:
$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
你可以試試這個[鏈接](http://social.technet.microsoft.com/Forums/en-US/63ace2a7-91f0-447d-ba33- bb526518564e/powershell-regular-expressions-replace-operator-disable-the-default-global-option?forum = ITCG):第二個Answer是你想要的。 –