寻求更深入了解powershell -replace magic

时间:2013-09-09 08:52:20

标签: regex powershell syntax

我可以使用PowerShell以非常C#的方式替换字符串中的子字符串:

$s.replace("foo", "bar")

这很好用,不使用正则表达式,易于掌握。

然而,这也有效(这确实使用正则表达式)

$s -replace "foo", "bar"

这里的谜是语法。字符串对象是否神奇地监听“-replace”命令行参数?这是从哪里来的?这是什么黑魔法?

我想简单地了解一下PowerShell的方法,也许还要弄清楚这个伏都教是否适用于其他对象或字符串对象本身。

2 个答案:

答案 0 :(得分:2)

-replace是Powershell运算符。在此处了解有关Powershell运算符的更多信息 - http://technet.microsoft.com/en-us/library/hh847732.aspx

它几乎与字符串对象无关,但与Powershell作为脚本语言有关。虽然它利用了.NET对象,因此利用了它们的属性和方法(这是String.Replace进入图片的地方),但Powershell也有自己的语法,它带来了表。

答案 1 :(得分:0)

  

这是什么黑魔法?

PowerShell解释器理解a -replace b,c运算符并知道调用Regex.Replace(a, b, c)(使用正确的大小写匹配选项)。