我使用http://www.regular-expressions.info/examples.html中的示例来验证以下代码
while [[ ! $name =~ ^[a-Z][ \t][a-Z]. ]]; do
echo "Please enter your Firstname and Surname e.g Joe Bloggs" # (a)Ask for NAME,TELEPHONE NUMBER,DOB #
read name
echo
done
我非常希望确保用户输入带有空格的第一个和第二个名称,我们将非常感谢您的帮助!
答案 0 :(得分:3)
你的正则表达式有几个问题:
a
(小写)和Z
(大写)之间的字符。这不符合您的预期,使用[A-Za-z]
检查大写和小写字母。+
匹配一个或多个字符。$
,而非.
(与任何单个字符匹配)。试试这个:
^[A-Za-z]+[\ \t][A-Za-z]+$
如果您想验证可以使用的大写的名字和姓氏:
^[A-Z][a-z]+[\ \t][A-Z][a-z]+$
但这不适用于像Marty McFly
这样不遵循该规则的名称。