如何使用验证名称和姓氏的正则表达式,以便每个单词以大写字母开头? 这不起作用:@“[^ A-Z]?[a-z] *”
由于
答案 0 :(得分:2)
试试这个:
[A-Z][a-z]*
请注意,这不是验证名称的好方法。根据区域设置,可以使用非ASCII UTF8字符。此外,并非所有名称都以大写字母开头。现实世界中存在以下名称:
Martha de Lange Norton
Marcél du Toit
因此,这有点好 - 它只是确保每个字符都是有效的字母:
\p{L}+
也就是说,执行此操作的最佳方法可能取决于正则表达式引擎的实现,因此我们需要知道您正在使用的语言和/或正则表达式库。
根据您的回答进行修改:如果您需要同时解析这两个字段,请尝试以下操作:
^[A-Z][a-z]*\s[A-Z][a-z]*$
答案 1 :(得分:0)
这表明它不是从一个或多个首都开始的。字符类中的^
表示否定... [^A-Z]
表示除了大写字母之外的所有内容。在括号之外,它意味着“字符串的开头”,我认为这是你的意图。你想要这个:
^[A-Z]?[a-z]*
开头的一个或多个大写,或
^[A-Z][a-z]*
只需一个大写,或
^[A-Z][A-Za-z]*
任何地方的首都,但绝对是开头的。