假设我有一个散列表:哈希表键语法来引用嵌入哈希表元素
$tokens = @{
Id=9999;
Title="Lorem ipsum dolor sit amet";
[email protected]{Name="John Doe"; Email='[email protected]'};
[email protected]{Name="Jane Doe"; Email='[email protected]'}
}
而且,我想填充的模板,与所述对应的散列表的值替换令牌(例如__Title__
):
/*
Author: __Author.Name__ <__Author.Email__>
Analyst: __Analyst.Name__ <__Analyst.Email__>
Request: __Title__ [__Id__]
*/
...
应该改为:
/*
Author: John Doe <[email protected]>
Analyst: Jane Doe <[email protected]>
Request: Lorem ipsum dolor sit amet [9999]
*/
有没有办法来指代ŧ o在“父”哈希表中嵌入哈希表的元素?例如,$tokens['Author.Email']
不起作用。
代码:
...
return [regex]::Replace($template, '__(?<tokenName>\w+)__', {
# __TOKEN__
param($match)
$tokenName = $match.Groups['tokenName'].Value
if ($tokens[$tokenName]) {
# matching token returns value from hashtable;
works for simple keys `$tokens['Title']`, not complex keys `$tokens['Author.Name']`
return $tokens[$tokenName]
}
else {
# non-matching token returns token
return $match
}
})
'$ tokens.author.email'是电子邮件地址。至少在PowerShell 3.0中 – Matt 2015-03-13 19:00:04
@Matt说了什么。另外'$ tokens ['作者'] ['电子邮件']' – briantist 2015-03-13 19:03:30
@craig你是什么意思? – Matt 2015-03-13 19:08:18