String PowerShell-如何在字符串的第一个反斜杠之前插入冒号字符?
在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
> 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]之间的字符不管你找到了什么数字,+':'+最后的下一个字符位置。退出循环。你能给出一个实现这一点的具体代码示例吗?正是我想要的:)