0

我想写一个正则表达式来验证输入。输入具有以下格式:

N. Crystal

O. J. Faucon

A. V. E. David

"^[A-Z. ]*+([a-zA-Z])*$"不管用。我怎样才能匹配上面的例子?

4

1 回答 1

3

.NET 正确地抱怨嵌套量词。*并且+是多余的,删除一个。

^[A-Z. ]*([a-zA-Z])*$

此外,*在这里使用似乎相当不直观,除非您真的想接受空输入。实际上,您不希望至少有一个角色吗?(我们也可以删除多余的括号,因为分组没有意义。)

^[A-Z. ]+[a-zA-Z]+$

最后,它接受几乎所有内容,例如“BAR... FOOxyz”。您可能想要更精确:

^([A-Z]\. )+[a-zA-Z]+$

现在第一组明确匹配一个首字母(即一个大写字母后跟一个点和一个空格),它匹配多个,但至少一个。

于 2012-05-30T10:51:24.557 回答