Regex 使用replace时无法摆脱反斜杠

Regex 使用replace时无法摆脱反斜杠,regex,powershell,Regex,Powershell,我希望使用PowerShellreplace功能替换部分网络路径。我在如何处理反斜杠方面遇到困难(\) 上面的代码将产生一个错误,因此我研究了使用[Regex]:Escape进行转义,但它不会替换文本: [Regex]::Escape( "\\Share\Users\Location\Username") -ireplace [Regex]::Escape("\\Share\Users"),[Regex]::Escape("\\NewShare\AllUsers") 这就是我得到的: \\\

我希望使用PowerShell
replace
功能替换部分网络路径。我在如何处理反斜杠方面遇到困难(
\

上面的代码将产生一个错误,因此我研究了使用[Regex]:Escape进行转义,但它不会替换文本:

[Regex]::Escape( "\\Share\Users\Location\Username") -ireplace  [Regex]::Escape("\\Share\Users"),[Regex]::Escape("\\NewShare\AllUsers")
这就是我得到的:

\\\\Share\\Users\\Location\\Username
我只需要:

\\Share\Users
替换为
\\NewShare\AllUsers
生成
\\NewShare\AllUsers\Location\Username


目前我对正则表达式的知识有限,所以我想知道是否有人能帮我:)

\
是正则表达式中的一个特殊字符,而
\Users
中的
\U
使它查找一个不存在的特殊命令
U
。您需要避开反斜杠:

"\\Share\Users\Location\Username" -ireplace  "\\\\Share\\Users", "\\NewShare\AllUsers"

基本上,
[RegEx]::Escape()
是正确的方法,但关键是只在实际为正则表达式的参数(第二个)上使用它。

您应该能够使用ireplace,只需像这样调整第一个参数:

"\\Share\Users\Location\Username" -ireplace  "\\\\Share\\Users","\\NewShare\AllUsers"

注意,我必须避开反斜杠,因为它被视为正则表达式,而第一个和第三个参数被视为字符串。

谢谢。这很有道理。对不起,山姆,Tessellingheckler刚刚打败了你。无论如何,谢谢你。
"\\Share\Users\Location\Username" -ireplace  "\\\\Share\\Users","\\NewShare\AllUsers"