如何从powershell中的字符串中删除第N个匹配字符后的字符

时间:2017-11-09 01:19:41

标签: powershell

如何删除powershell中第n个匹配字符后的所有字符?

实施例: \ 1CF \ 0101 \ FIXED \ PIPING \ 0101-000 \ 0101-000-000 \ Crkg_O_S_I \ 1997_O_S_I

我想删除第7个" \"之后的所有字符。所以输出就是 \ 1CF \ 0101 \ FIXED \ PIPING \ 0101-000 \ 0101-000-000或 \ 1CF \ 0101 \ FIXED \ PIPING \ 0101-000 \ 0101-000-000 \ 与输出中的哪一个

无关

1 个答案:

答案 0 :(得分:1)

[从我的评论中移出这个]我认为将字符串拆分为基于反斜杠的部分,然后取前七个部分并忽略其余的部分,并用新的反斜杠连接这7个部分是一个非常短暂,明智的方法:< / p>

$string.split('\')[0..6] -join '\'

其他方法是重复执行$index = $string.IndexOf('\', $index + 1),直到找到第7个位置,然后使用$string.SubString()。为了节省大量内存(没有创建用于保存拆分的数组),这可能不值得。

相关问题