gpt4 book ai didi

powershell - powershell中的.replace和-replace有什么区别?

转载 作者:行者123 更新时间:2023-12-02 22:33:10 25 4
gpt4 key购买 nike

我的印象是 .replace 和 -replace 是完全相同的东西,但是我发现我无法使用 .replace 完成一些使用 -replace 可以完成的正则表达式任务。有人可以指出我缺少什么吗?

Broken Regex replace:
$a=$a.Replace('.:\\LOGROOT\\', "\\$env:computername\logroot\")


Working Regex replace:
$a=$a -Replace('.:\\LOGROOT\\', "\\$env:computername\logroot\")
PS:以下 URL 让我认为有一些我不熟悉的 .replace 选项,但我似乎无法找到有关如何使用它们或如何访问这些选项的帮助的任何其他信息。 http://www.computerperformance.co.uk/powershell/powershell_regex.htmRegex.Replace(String, String, String, RegexOptions) 以及:Regex.Replace(String, String, MatchEvaluator, RegexOptions) 方法。

谢谢

最佳答案

虽然 @Keith Hill 的答案解释了 Replace 方法和 -replace 运算符之间的区别,但为了解释为什么您可能看不到相同的结果,这是因为您是使用 String.Replace 方法进行字符串替换,而 -replace 运算符使用正则表达式替换。您可以使用 Regex.Replace方法用于此目的,您应该看到相同的效果:

[regex]::replace($a,'.:\\LOGROOT\\', "\\$env:computername\logroot\")

简而言之,-replace 运算符与 Regex.Replace 相同(上面链接的特定重载),但总的来说 Replace() 可以是实例或静态方法,可以执行与 -replace 完全不同的任何操作

关于powershell - powershell中的.replace和-replace有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10184156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com