String PowerShell-如何在字符串的第一个反斜杠之前插入冒号字符?

String PowerShell-如何在字符串的第一个反斜杠之前插入冒号字符?,string,powershell,String,Powershell,在PowerShell中,我有一个字符串,其值类似于: > text/text/text\text\text\text 该字符串长度可变,可能有不同数量的前斜杠和后斜杠 我只想在第一个反斜杠前插入冒号(:)。所以把它从 > text/text/text\text\text\text 到 > text/text/text:\text\text\text 最简单的方法是什么 谢谢使用Insert()和IndexOf()字符串方法: $string = 'text/text/t

在PowerShell中,我有一个字符串,其值类似于:

> text/text/text\text\text\text
该字符串长度可变,可能有不同数量的前斜杠和后斜杠

我只想在第一个反斜杠前插入冒号(
)。所以把它从

> text/text/text\text\text\text

> text/text/text:\text\text\text
最简单的方法是什么

谢谢

使用
Insert()
IndexOf()
字符串方法:

$string = 'text/text/text\text\text\text'
$result = $string.Insert($string.IndexOf('\'),':')

:

报告此实例中第一次出现的指定字符串的从零开始的索引

而:

返回一个新字符串,其中在该实例中的指定索引位置插入了指定字符串


使用PowerShell 3.0+还可以轻松使用正则表达式插入

$result = $string -replace '(?<!\\.*)\\',':\'

$result=$string-replace'(?我本想提出这个建议,但Mathias的答案更好:

$text = 'text/text/text\text\text\text'

$bs = $text.IndexOf('\')
"$($text.Substring(0,$bs)):$($text.Substring($bs))"

逐个字符循环字符串,检查当前字符是否为“\”。如果不是,则转到下一个(循环),如果是,则为字符串指定[0]之间的字符不管你找到了什么数字,+':'+最后的下一个字符位置。退出循环。你能给出一个实现这一点的具体代码示例吗?正是我想要的:)