1

我使用了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

我只是想确保用户输入带有空格的名字和第二个名字,任何帮助将不胜感激!

4

1 回答 1

3

您的正则表达式有几个问题:

  • 您正在检查a(小写)和Z(大写)之间的字符。这不会像您期望的那样,用于[A-Za-z]检查大小写字母。
  • 您缺少重复字符;用于+匹配一个或多个字符。
  • 匹配结束应该是$, not .(匹配任何单个字符)。

试试这个:

^[A-Za-z]+[\ \t][A-Za-z]+$

如果要验证大写的名字和姓氏,可以使用:

^[A-Z][a-z]+[\ \t][A-Z][a-z]+$

但这不适Marty McFly用于不遵循该规则的名称。

于 2013-01-20T23:09:56.227 回答