本帖最后由 5i365 于 2022-3-31 11:41 编辑
回复 8# for_flr
大侠好, 想请教一个问题, 下面的代码, 输出的结果是: hash表对象的属性,即蓝色字, 我想输出hash对象的定义的字符串,即红色字,
我找了下相关函数没有找到, 我印象中在哪里看到过, 字符串转对象, 对象转字符串,还有一些对象, 是可以互转的
Name Value
---- -----
日本 "在东京"
美国 "在纽约"
南非 "在刚果"
------------------------------------------------------------------
$hash = [ordered]@{
日本 = "在东京"
美国 = "在纽约"
南非 = "在刚果"
}
- $s = @"
- 岁月难得沉默
- 秋风厌倦漂泊
- 夕阳赖着不走
- 挂在墙头舍不得我
- 昔日伊人耳边话
- 已和潮声向东流
- 再回首
- #开始
- 黄种人"在东京", //日本
- 白人"在纽约", //美国
-
- "在刚果",//南非
- 黑人//印度
-
- #结束
- 往事也随枫叶一片片落
- 爱已走到尽头
- 恨也放弃承诺
- 命运自认幽默
- 想法太多由不得我
- 壮志凌云几分酬
- 知己难逢几人留
- "@
-
- $txt = $s -split '\n' -join "|"
-
- $pattern1 = "#开始(.*)#结束"
- $pattern2 = '("\w+"),\s?//(\w+)'
- $hash = [ordered]@{ }
-
- if ($txt -match $pattern1)
- {
- $target = $matches[1].split('|')
- }
-
- foreach ($line in $target)
- {
- if ($line -match $pattern2)
- {
- $hash[$matches[2]] = $matches[1]
- }
- }
- $hash
复制代码
|