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

时间:2017-07-12 13:42:22

标签: string powershell

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

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

字符串是可变长度的,可能有不同数量的正斜杠和反斜杠。

我想在第一个反斜杠之前插入一个冒号(:)字符。所以改变它......

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

到...

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

最简单的方法是什么?

由于

2 个答案:

答案 0 :(得分:2)

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

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

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))"