【发布时间】:2019-08-19 21:22:45
【问题描述】:
我能够匹配正则表达式所需的字符串,但它匹配了两次。
https://regex101.com/r/KmgGwS/7
if ( $_.PSPath -match ("(?<=\::)(.*?)(?=\\)+")) {
$matches.Values
}
例如,输入字符串是这样的:
'Microsoft.PowerShell.Security\Certificate::CurrentUser\Root\A43489159A520F0D93D032CCAF37E7FE20A8B419'它期望得到:
当前用户使用当前代码,它会两次获得该字符串:
当前用户 当前用户【问题讨论】:
-
不会
"(?<=\::)(.*?)(?=\\)+"成为正则表达式引擎的(?<=\::)(.*?)(?=\)+吗?这将产生引擎错误... -
@sln:在 PowerShell 中,反引号 (
`) 用作双引号字符串文字中的转义字符;\字符逐字使用 - 请参阅about_Quoting_Rules
标签: regex powershell