我正在尝试修改 PowerShell 中的反向引用,但运气不佳:(
这是我的例子:
"456,Jane Doe" -replace '^(\d{3}),(.*)$',"| $(`"`$2`".ToUpper()) | `$1 |"
如果我运行它,我会得到这个:
|简·无名氏 | 456 | 456
但我真的很期待这个:
|简·多伊 | 456 | 456
如果我运行以下命令(与上面相同,但在调用 ToUpper 时没有“()”):
"456,Jane Doe" -replace '^(\d{3}),(.*)$',"| $(`"`$2`".ToUpper) | `$1 |"
我明白了:
| string ToUpper(), string ToUpper(System.Globalization.CultureInfo culture) | 456 |
因此,PowerShell 似乎知道反向引用“$2”是一个字符串,但为什么我不能让 PowerShell 将其转换为大写字母?
Terry
[Regex]::Replace('456,Jane Doe',
'^(\d{3}),(.*)$',
{
param($m)
'| ' + $m.Groups[2].Value.ToUpper() + ' | ' + $m.Groups[1].Value + ' |'
}
)
我承认,不太漂亮。遗憾的是,您不能使用脚本块作为替换-replace
操作员。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)