Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 名称正则表达式:任何语言,但首字母必须为大写_Regex - Fatal编程技术网

Regex 名称正则表达式:任何语言,但首字母必须为大写

Regex 名称正则表达式:任何语言,但首字母必须为大写,regex,Regex,我需要接受一个名字作为输入,并检查第一个字母是否为大写字母,以及字符串末尾是否可以有1个空格 此正则表达式适用于“Bob”: ^[A-Z][A-Za-z\p{L}]+[\s,.'\-]?[a-zA-Z\p{L}]*$ 另外一个要求是允许任何语言/字符使用unicode 此正则表达式适用于俄语名称:“Афааааа” ^[A-Z\p{L}][A-Za-z\p{L}]+[\s,.'\-]?[a-zA-Z\p{L}]*$ 。。。然而,虽然它支持unicode,但它也允许我用一个小的第一个字母输入“

我需要接受一个名字作为输入,并检查第一个字母是否为大写字母,以及字符串末尾是否可以有1个空格

此正则表达式适用于“Bob”:

^[A-Z][A-Za-z\p{L}]+[\s,.'\-]?[a-zA-Z\p{L}]*$
另外一个要求是允许任何语言/字符使用unicode

此正则表达式适用于俄语名称:“Афааааа”

^[A-Z\p{L}][A-Za-z\p{L}]+[\s,.'\-]?[a-zA-Z\p{L}]*$
。。。然而,虽然它支持unicode,但它也允许我用一个小的第一个字母输入“bob”,正则表达式允许这样做

当首字母不是大写字母时,是否有任何方法允许unicode和仍然标记首字母?(使用正则表达式)


我可以进行一些代码更改来解决这个问题,但如果能够在不进行代码更改的情况下将其全部保留在RegEx值中,那就太好了。

任何Unicode大写字母都可以与
\p{Lu}
匹配

使用

请参阅和。第二个正则表达式更精确,因为它不允许尾随空格、逗号等(在
[\s,.-]
字符类中定义)

请注意,使用
[A-Za-z\p{L}]
没有任何意义,因为
\p{L}
已经匹配了
[A-Za-z]

图案细节

  • ^
    -字符串的开头
  • \p{Lu}
    -大写Unicode字母
  • \p{L}+
    -一个或多个Unicode字符
  • (?:[\s,.-]\p{L}+)
    -一个或零个(可选)序列
    • [\s,.-]
      -一个空格、
      或连字符
    • \p{L}+
      -1个或多个Unicode字母
  • $
    -字符串结束
^\p{Lu}\p{L}+[\s,.'\-]?\p{L}*$
^\p{Lu}\p{L}+(?:[\s,.'-]\p{L}+)?$