0

我需要一个regular expression名字必须以至少 2 个字符开头。

我正在使用以下

/^[A-Z a-z]{2,25}$/
4

2 回答 2

3

您的正则表达式似乎允许空格,所以我不确定这是否有效。

如果您想要一个在开头至少指定两个字母字符的正则表达式,您可以使用:

/^[A-Za-z]{2}/

这将强制前两个字符为 alpha,对字符串的其余部分没有任何限制。如果您想(看起来)允许这些相同的字符加上空格,之后最多添加23 个字符,请使用:

/^[A-Za-z]{2}[A-Za-z ]{0,23}$/

否则,如果您对字符的定义包括前两个字符的空格,那么您当前的正则表达式应该没问题。

于 2013-04-15T08:39:23.767 回答
0

问题是您使用的是哪个正则表达式?我假设 POSIX RE。

你的解决方案还算不错,但是如果你检查一个真实的名字,空间是没有用的。(也许你也在检查心灵名称???)而且(我想)第一个字符应该是大写字母,其余小写,不是吗?如果是这样,我建议:

/^[[:upper:]][[:lower:]]{1,24}$/

使用内置字符类的优势在于它也可以在其他语言中工作。

例子:

$ echo -e "Alpha\nalpha\naLpha\nThisisaverylongfirstname\nThisfirstnameismuchlongertobesure"\
|egrep '^[[:upper:]][[:lower:]]{1,24}$'
Alpha
Thisisaverylongfirstname
于 2013-04-15T08:58:40.553 回答