当字符串可能包含第一个字符以外的其他大写字母时,正则表达式为 return false

Regex to return false when string that may contain other capital letters other than the first character

到目前为止我有^[A-Z]{1}[^A-Z]+

这适用于例如 John

但是,当我希望匹配 return false 并且字符串中包含另一个大写字母时,它也适用于 JohnSmith

^[A-Z][^A-Z]+$

只需添加 $ 锚点以确保它与整体匹配并且没有部分 matches.See 演示。

https://regex101.com/r/xO3rH2/3

如果没有 $,您的正则表达式在 JohnSmith

中最多匹配 John

您的正则表达式匹配 John 作为 JohnSmith 的子字符串,因此您需要使用额外的字符串结尾 anchor ($) 或选择强制匹配整个字符串的正则表达式函数。由于并非所有语言都有这样的功能,这里有一个带有锚点的解决方案:

^[A-Z][^A-Z]+$

如果您还需要接受一个大写字母:

^[A-Z][^A-Z]*$

否则使用

^[A-Z][^A-Z]+$

它接受至少附加一个非国会字母的大写字母。