首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Powershell regex替换-使用$1作为字典键

Powershell regex替换-使用$1作为字典键
EN

Stack Overflow用户
提问于 2015-09-24 00:53:48
回答 1查看 440关注 0票数 0

我试图在字符串中找到regex模式,并使用哈希表替换它。第一个示例工作得很好,我得到的结果是"$$oldstring$$ $$oldstring$$“。我不知道如何将'$1‘作为键传递到哈希表中,以便将其替换为与我的散列中的键对应的值。

这是我的代码:

代码语言:javascript
复制
$hashtable = @{'$$oldstring$$' = 'newstring'}

$testString = '$$oldstring$$'

$replaced = [regex]::Replace($testString, '(\$\$(.*?)\$\$)', '$1 $1')
$replaced

$replaced2 = [regex]::Replace($testString, '(\$\$(.*?)\$\$)', $hashtable.Get_Item($1))
$replaced2

以及产出:

代码语言:javascript
复制
$$oldstring$$ $$oldstring$$

Exception calling "get_Item" with "1" argument(s): "Key cannot be null.
Parameter name: key"

我知道$hashtable.Get_Item( $1 )不是有效的语法,$1在这里是空的,但似乎无法找到正确的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-24 01:18:37

好像是我自己想出来的,不得不用这样的脚本块:

代码语言:javascript
复制
$replaced2 = [regex]::Replace($testString, '(\$\$(.*?)\$\$)', { $hashtable.Get_Item($args[0].Value) } )

更多信息在这里:Evaluator

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32751722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档