正则表达式包含至少一个大写字母,不包含至少一个下划线

时间:2020-05-12 14:52:26

标签: regex string match dispatcher regular-language

我需要一个至少包含一个大写且不包含任何下划线的正则表达式,我目前的尝试是:

[self.searchBar setPlaceholderColor:[UIColor lightTextColor] setPlaceholderFont:[UIFont italicSystemFontOfSize:13]];
[self.searchBar setTextColor:[UIColor whiteColor] setTextFont:[UIFont systemFontOfSize:16]];

我尝试了类似(?=.*[A-Z_]) 的字符串,因为该字符串包含example-chocolate-easter-egg-170g_349-85428671-ACCESSIBLEEASTEREGG和至少一个大写字母,因此应该为false。但是我上面的正则表达式仍然为true ...应该是错误的...

理想情况下,_是正确的,因为它不包含example-chocolate-easter-egg-170g349-85428671-ACCESSIBLEEASTEREGG,至少包含一个大写字母。

,这个也应该是假的,因为它没有大写字母:_

有什么建议吗?正则表达式代码示例将非常有帮助 谢谢

1 个答案:

答案 0 :(得分:2)

使用

^(?=.*[A-Z])(?!.*_).+

请参见proof

匹配一个包含大写字符-(?=.*[A-Z]),不包含下划线-(?!.*_),也不为空-.+的字符串。删除.+或使用.*支持空输入。