【问题标题】:Replace a word in a string with powershell用powershell替换字符串中的单词
【发布时间】:2017-09-07 14:57:06
【问题描述】:

我正在尝试用 PowerShell 脚本替换字符串中的单词 of

我尝试了一个 if 语句:

$string = "a tale of two cities "   

$array = $string -split " "    

if($array -match 'of') {
    $array -replace 'bob'
}

该语句适用于检测of,但我不知道如何用不同的词替换它。

【问题讨论】:

标签: arrays string powershell join split


【解决方案1】:

您只需要使用-replace 运算符的单个表达式:

> 'a tale of two cities' -replace '\bof\b', 'bob'
a tale bob two cities

如果你想得到的字符串被空格分割成单词:

$array = -split 'a tale of two cities' -replace '\bof\b', 'bob'

【讨论】:

  • 是否可以将要替换的世界像“of”放在一个数组中并测试数组中的单词列表?比如:$array = $array -replace $wordList
  • @williamyocom:不,-replace 在 RHS 上仅支持单个字符串。我建议你问一个新的问题(一旦你这样做了,请随时在这里告诉我)。
【解决方案2】:

我发现方法版本更简单一些:

"a tale of two cities ".Replace('of','bob')

甚至:

$string = "a tale of two cities "
$string.Replace('of','bob')

【讨论】:

  • 是的,在这种特殊情况下,.Replace() .NET 类的 方法 执行的 literal 替换更简单,但是一般来说,PowerShell 的基于 regex-replace operator 更加灵活。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-03
  • 2014-01-08
  • 1970-01-01
  • 2014-04-01
相关资源
最近更新 更多