This question already has answers here:
Lambda Expression in Powershell

(3个答案)


在10个月前关闭。




给定数据库类型字符串varchar(30),我想通过大写类型名称并将其放在方括号中来对SQL Server进行标准化。所需的结果是[VARCHAR](30)

如何将$ 1转换为大写?该表达式标识类型并添加方括号,但不是ToUpper()。
PS> "varchar(30)" -replace '^\[*(\w+)\]*(.*)','[$1]$2'
[varchar](30)

最佳答案

使用正则表达式的简化版本:

PowerShell [Core] v6.1 + 中:

PSCore> 'varchar(30)' -replace '^\[*\w+\]*', { '[' + $_.Value.ToUpper() + ']' }
[VARCHAR](30)

注意:如果输入中最多包含一个[...]附件,则应改用\[?\]?

中,Windows PowerShell :
WinPS> [regex]::Replace('varchar(30)', '^\[*\w+\]*', { param($m) '[' + $m.Value.ToUpper() + ']' })
[VARCHAR](30)

有关背景信息,请参见this answer

10-07 19:26
查看更多