gpt4 book ai didi

powershell - 在powershell中替换时正则表达式无效

转载 作者:行者123 更新时间:2023-12-01 23:02:41 24 4
gpt4 key购买 nike

$100 = "$env:APPDATA/somthing"
$iamhere = "C:/example"
$100 = $100 -replace "`$env:APPDATA\somthing", "$iamhere"
我要 $100替换为 $iamhere其内容(以文本形式),尽管我收到此错误。
Regular expression pattern is not valid: $env:APPDATA\somthing.
At line:1 char:1
$100 = $100 -replace "`$env:APPDATA\somthing", "$iamhere"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: ($env:APPDATA\somthing:String) [], RuntimeException
+ FullyQualifiedErrorId : InvalidRegularExpression
我认为这是因为我试图用目录替换一些文本,但我想要 $iamhere 变量中的文本

最佳答案

-replace运算符会将您提供的输入字符串解析为正则表达式。 \字符是正则表达式中的特殊字符,因此如果您希望按字面意思处理它,则需要通过添加 \ 来转义它。在它面前。幸运的是,.NET 为您提供了一个方便的功能:

# ~> [Regex]::Escape("$env:APPDATA/somthing")
C:\\Users\\username\\AppData\\Roaming/somthing

因此,只需像这样更新您的示例:
$100 = $100 -replace [Regex]::Escape("$env:APPDATA/somthing"), $iamhere

请注意,您不需要 $iamhere 周围的引号(但由于它是一个字符串,因此没有区别)。

关于powershell - 在powershell中替换时正则表达式无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18993081/

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