在powershell中搜索字符串中的特殊字符

时间:2013-06-27 20:21:04

标签: powershell powershell-v2.0

我有以下代码,其中我正在尝试搜索特殊字符&字符串的长度。如果条件失败,则应将错误注释写入主机。我正在使用Powershell 2.0。代码检查字符串长度,但无法检查任何特殊字符。请帮忙。

$chk=$user_logon.Output_Value
if($chk.length -gt 64 -or $chk -notmatch '[^a-zA-Z0-9]')
{
  write-host "Error - The Value ""$chk"" is greater than 64 bits or it contains a special character" -BackgroundColor "White" -ForegroundColor "Red";     
}

我也试过了 -

if($chk.length -gt 64 -or $chk -notmatch "^[a-zA-Z0-9\s]+$")

已经奏效了。但我希望有条件检查所有特殊字符除了下划线“_”,它可以是$ chk的一部分。

感谢。

1 个答案:

答案 0 :(得分:1)

您需要将$chk -notmatch '[^a-zA-Z0-9]'替换为$chk -match '[^a-zA-Z0-9]'