在PowerShell中,我有一个字符串,其值类似于:
> text/text/text\text\text\text
字符串是可变长度的,可能有不同数量的正斜杠和反斜杠。
我想在第一个反斜杠之前插入一个冒号(:
)字符。所以改变它......
> text/text/text\text\text\text
到...
> text/text/text:\text\text\text
最简单的方法是什么?
由于
答案 0 :(得分:2)
使用Insert()
和IndexOf()
字符串方法:
$string = 'text/text/text\text\text\text'
$result = $string.Insert($string.IndexOf('\'),':')
报告此实例中第一次出现指定字符串的从零开始的索引。
while String.Insert()
:
返回一个新字符串,在该字符串中,在此实例中的指定索引位置插入指定的字符串。
使用PowerShell 3.0+,您还可以轻松使用正则表达式插入:
:
$result = $string -replace '(?<!\\.*)\\',':\'
答案 1 :(得分:1)
我打算这样做,但Mathias的答案更好:
$text = 'text/text/text\text\text\text'
$bs = $text.IndexOf('\')
"$($text.Substring(0,$bs)):$($text.Substring($bs))"