0

我需要根据以下规则验证人员姓名首字母:

  1. 必须以 Alpha (AZ) 开头
  2. 必须以 Alpha (AZ) 结尾
  3. 字母字符必须用空格或连字符分隔

据我所知:

^[[:alpha:]]([[:alpha:]]|([[:blank:]-])[[:alpha:]])*([[:blank:]-][:alpha:]|[:alpha:])?$

它执行 1 和 2(并允许使用空格和连字符),但不确保字母字符由空格或连字符分隔,即 AD 评估为真。

谢谢你的帮助。我对正则表达式很陌生,因此感谢您的帮助。

4

2 回答 2

1
^([A-Z][ -])*[A-Z]$
-                     start
 -         --         any number of times
  -----                 a capital letter
       ----             followed by exactly one separator (space or hyphen)
             -----    followed by a final (and possibly initial) capital letter     
于 2013-07-12T09:05:10.193 回答
0

字母符号还是 AZ?

[:alpha:] == [A-Za-z]

试试这个 RE:

^[A-Z]([\s\-][A-Z])*$

"A B C" = true
"ABC" = false
"123" = false
"A B-C" = true
"A BC" = false

RE 是否允许单个字母字符或多个?

于 2013-07-12T09:07:16.440 回答