如何使用powershell替换字符串

时间:2014-11-24 16:06:20

标签: powershell

我有以下字符串:$str = '"FirstName":"first name","LastName":"Last name","AskCatalog":false,"Nuteres":61","ZipCode":"1234"'

我需要用这样的变量替换FirstName:“first name”的值

"FirstName":"$strFristname"

任何人都可以告诉我如何在PowerShell中执行此操作?

谢谢。

2 个答案:

答案 0 :(得分:1)

像这样:

$str -replace '("FirstName":)".*?"', "`$1`"$strFirstname`""

模式("FirstName":)".*?"匹配字符串"FirstName":后跟双引号和任何字符(.*?)的最短匹配,直到下一个双引号。括号创建一个可由替换字符串中的$1引用的组。由于替换字符串周围的双引号,必须对引用进行转义(`$1)。嵌套双引号(`")也是如此。

如果您希望变量而不是其值显示在结果中,您还需要转义变量的$

$str -replace '("FirstName":)".*?"', "`$1`"`$strFirstname`""

演示:

PS C:\> $str = '"FirstName":"first name","LastName":"Last name"'
PS C:\> $strFirstname = 'Joe'
PS C:\> $str -replace '("FirstName":)".*?"', "`$1`"$strFirstname`""
"FirstName":"Joe","LastName":"Last name"
PS C:\> $str -replace '("FirstName":)".*?"', "`$1`"`$strFirstname`""
"FirstName":"$strFirstname","LastName":"Last name"

答案 1 :(得分:-1)

为什么不保持简单?

$str -replace 'First Name', $strFirstname