期间和空间的RegEx

时间:2012-05-30 10:32:17

标签: regex vb.net

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

N. Crystal

O. J. Faucon

A. V. E. David

"^[A-Z. ]*+([a-zA-Z])*$"无效。我如何匹配以上示例?

1 个答案:

答案 0 :(得分:3)

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

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

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

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

最后,这几乎可以接受所有事情,例如: “BAR ... FOOxyz”。您可能希望更精确:

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

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