如何删除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 \ 与输出中的哪一个
无关答案 0 :(得分:1)
[从我的评论中移出这个]我认为将字符串拆分为基于反斜杠的部分,然后取前七个部分并忽略其余的部分,并用新的反斜杠连接这7个部分是一个非常短暂,明智的方法:< / p>
$string.split('\')[0..6] -join '\'
其他方法是重复执行$index = $string.IndexOf('\', $index + 1)
,直到找到第7个位置,然后使用$string.SubString()
。为了节省大量内存(没有创建用于保存拆分的数组),这可能不值得。