gpt4 book ai didi

regex - 如何将 RegEx token 传递给 RegEx 替换中的 PowerShell 子表达式?

转载 作者:行者123 更新时间:2023-12-05 09:33:06 24 4
gpt4 key购买 nike

我有以下代码:-

'\u0026' -replace '(\u)(\d{4})', '$$([char]0x$2)'

这显然会导致:-

$([char]0x0026)

如果我将 RegEx 替换为可扩展字符串:-

'\u0026' -replace '(\\u)(\d{4})', "$([char]0x`${2})"

然后我会得到:-

Unexpected token '0x`$' in expression or statement.

如果我将事情简化为:-

'\u0026' -replace '(\\u)(\d{4})', "0x`${2}"

然后我可以得到:-

0x0026

但是,我想要的是将“0x0026”转换为一个字符,以便将“\u0026”替换为“&”。但是,似乎不可能以这种方式将 RegEx 替换标记传递给 PowerShell 子表达式。如果您将两种语言分开:-

'\u0026' -replace '(\\u)(\d{4})', "$([char]0x0026) 0x`${2}"

然后下面会产生:-

& 0x0026

这很棒,因为它表明 PowerShell 子表达式在 RegEx 替换中确实有效,如转换后的 & 符号所示。

我是 RegEx 的新手。我已经达到极限了吗?

最佳答案

显然,您想要反转义一个转义正则表达式。您可以使用 .net [regex] unescape 执行此操作方法:

[Regex]::Unescape('Jack\u0026Jill')

产量:

Jack&Jill

关于regex - 如何将 RegEx token 传递给 RegEx 替换中的 PowerShell 子表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67445665/

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