当字符串可能包含第一个字符以外的其他大写字母时,正则表达式为 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]+$
它接受至少附加一个非国会字母的大写字母。
到目前为止我有^[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]+$
它接受至少附加一个非国会字母的大写字母。