我需要一个正则表达式名字必须以最少2个字符开头

时间:2013-04-15 08:33:28

标签: regex

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

我正在使用以下

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

2 个答案:

答案 0 :(得分:3)

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

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

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

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

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

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

答案 1 :(得分:0)

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

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

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

使用内置字符类的优点,它也可以在其他语言中使用。

示例:

$ echo -e "Alpha\nalpha\naLpha\nThisisaverylongfirstname\nThisfirstnameismuchlongertobesure"\
|egrep '^[[:upper:]][[:lower:]]{1,24}$'
Alpha
Thisisaverylongfirstname