我可以使用PowerShell以非常C#的方式替换字符串中的子字符串:
$s.replace("foo", "bar")
这很好用,不使用正则表达式,易于掌握。
然而,这也有效(这确实使用正则表达式)
$s -replace "foo", "bar"
这里的谜是语法。字符串对象是否神奇地监听“-replace”命令行参数?这是从哪里来的?这是什么黑魔法?
我想简单地了解一下PowerShell的方法,也许还要弄清楚这个伏都教是否适用于其他对象或字符串对象本身。
答案 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)
(使用正确的大小写匹配选项)。