我需要regular expression
名字必须以最少2个字符开头。
我正在使用以下
/^[A-Z a-z]{2,25}$/
答案 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