Regex 名称正则表达式:任何语言,但首字母必须为大写
我需要接受一个名字作为输入,并检查第一个字母是否为大写字母,以及字符串末尾是否可以有1个空格 此正则表达式适用于“Bob”: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,但它也允许我用一个小的第一个字母输入“
^[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]
图案细节:
-字符串的开头^
-大写Unicode字母\p{Lu}
-一个或多个Unicode字符\p{L}+
-一个或零个(可选)序列(?:[\s,.-]\p{L}+)
-一个空格、[\s,.-]
、
、
、
、
或连字符、
-1个或多个Unicode字母\p{L}+
-字符串结束$
^\p{Lu}\p{L}+[\s,.'\-]?\p{L}*$
^\p{Lu}\p{L}+(?:[\s,.'-]\p{L}+)?$