【发布时间】:2015-11-28 02:19:22
【问题描述】:
一般来说,我对使用 powershell 和正则表达式编程还是很陌生。善良的灵魂可以向我解释为什么以下不起作用?
while($true) {
$Name = Read-Host "Please enter your firstname and lastname"
if($Name -match "[^a-zA-Z-]" -and $Name -match " ") {
break;
} else {
Write-Host -ForegroundColor red "You didn't enter a valid name! Please try again."
}
}
我希望我的代码继续询问 first 和 surname,只要它包含不是 a-z 和 - 的字符以及其中的空格。我在这里采取了错误的方法吗?
糟糕,应该已经提到了这个错误。我可以添加数字和特殊符号(如 >
【问题讨论】:
-
糟糕,应该已经提到了这个错误。我可以添加数字和特殊符号(如 >
-
不是很清楚。什么是允许和要求的。忘记什么是不允许的。
-
明确地说,您想一直询问姓名,直到 (1) 里面没有非字母字符和 (2) 里面有空格?
-
我很确定您需要使用 `\` 转义
-字符 -
@RNar 不在字符类的开头或结尾。
标签: regex powershell