当前位置: 首页 > 知识库问答 >
问题:

验证大写字母(包括Unicode字符)的全名的正则表达式?

沈宇定
2023-03-14

我正在创建一个Google表单,并在文本/段落文本选项中使用数据验证功能。我需要确认人们的名字。这些名字需要用大写字母填写,并且可能有不同的字数。名称可以是“FIRSTNAME LASTNAME”或“FIRSTNAME MIDDLENAME LASTNAME”或“FIRSTNAME MIDDLENAME1 MIDDLENAME2 LASTNAME”,等等。

另一件事是,一些名字包括来自土耳其和葡萄牙字母表的字符,将来也可能包括来自西里尔字母表的字符。我如何在正则表达式中包含所有这些可能性?如果能解释一下所用的表达方式,那也太好了。

PS:我检查了验证姓名和姓氏的正则表达式?但是1.它只对姓名和2有效。它也包括小写字母。

共有1个答案

齐学文
2023-03-14

其中一个可能会给你一些想法-

 # --------------------
 # To capture names, first/last name required
 # \s*\p{Lu}+(?:\s+\p{Lu}+)*\s+\p{Lu}+\s*
 # --------------------

 \s*                       # some boundry                  (optional)
 ( \p{Lu}+ )               # (1), upper case first name    (required) 
 (                         # (2), upper case middle names  (optional)
      (?: \s+ \p{Lu}+ )*
 )
 \s+                       # some boundry                  (required) 
 ( \p{Lu}+ )               # (3), upper case last name     (required) 
 \s*                       # some boundry                  (optional)


 # --------------------
 # Or, if no boundry and only first name required
 # \p{Lu}+(?:\s+\p{Lu}+)*
 # --------------------

 \p{Lu}+ 
 (?: \s+ \p{Lu}+ )*


 # --------------------
 # Or, if no boundry and first/last name required
 #\p{Lu}+(?:\s+\p{Lu}+)+
 # --------------------

 \p{Lu}+ 
 (?: \s+ \p{Lu}+ )+
 类似资料:
  • 问题内容: 当我使用某种方式时,它仍然会触发,好像连字符无效。我试着和 问题答案: 转义使用应该没问题,但是您也可以尝试将其放在字符类的开头或结尾。这应该为您工作:

  • 这个regex:匹配这些字符"示例字符串的ASKJKSDJKDSJÄÖÅüé" "ASKJKSDJK_-。;,DSJ!”#€% 我想匹配多种语言中任何和所有不是字母或数字的字符。 一个负正则表达式可能是一个自然的方向吗? 我应该提到我想找到的正则表达式的一个预期用途是验证规则的密码: 它需要包含至少一个特殊字符,我定义为不是数字也不是字母。 如果可能的话,似乎应该避免定义特殊字符的范围,因为为什么

  • 我无法找到一个合适的正则表达式来匹配任何不以某种条件开头和结尾的字符串。 但用这个我不能实现面具‘。正则表达式结尾的字符。 多谢了。

  • 我正在努力与正则表达式和需要它的程序。 输入只需要字母数字键,还需要(只允许逗号、:、空格、/、-在特殊字符中) 据我所知,我已经尝试=(^[a-zA-Z0-9,:\S/-]*$),如果我错了,请纠正我。a-zA-Z0-9-字母数字键.,:-逗号和冒号-S-Space/-我不确定如何表示正斜杠,因此我对其进行了转义--破折号也不确定是否需要转义它。 如果可以更正并解释每个部分,将不胜感激。 提前谢

  • 问题内容: 我希望正则表达式仅对字母和空格进行验证。基本上,这是为了验证全名。例如: Steve Collins先生或Steve Collins先生, 我尝试过此正则表达式。“ [a-zA-Z] + \。?” 但没有工作。有人可以帮我吗,请注意我使用Java。 问题答案: 关于什么: 彼得·米勒 弗朗索瓦·奥朗德 帕特里克·奥布莱恩 西尔瓦娜·科赫·梅林 验证名称是一个难题,因为有效名称不仅包含字

  • 问题内容: 我有一个 本地化 的输入字段。我需要使用正则表达式添加一个验证,该验证必须只包含字母和数字。如果我只使用英语,我本可以使用。 到目前为止,我正在使用该方法(是的,我正在遍历每个字符)来过滤出各种语言中存在的字母。 有更好的方法吗?任何正则表达式或其他可用的库吗? 问题答案: 从Java 7开始,您可以使用 如果没有该选项,它将无法识别“Müller”一词,但会使用 启用Unicode版