Regex 对包含三个部分的复杂正则表达式求反
我需要一个正则表达式,当字符串不同时包含小写和大写字母时,它将被匹配Regex 对包含三个部分的复杂正则表达式求反,regex,regex-negation,Regex,Regex Negation,我需要一个正则表达式,当字符串不同时包含小写和大写字母时,它将被匹配 如果字符串只有小写字母->应匹配 如果字符串只有大写字母->则应匹配 如果字符串只有数字或特殊字符->应匹配 比如说 abc,abc,123,abc123,abc123&^-应匹配 AbC,A12b,AB^%12c-不应匹配 基本上,我需要以下正则表达式的逆/反: ^(?=.[a-z])(?=.[a-z])。+$ 你可以使用这个正则表达式 ^(([A-Z0-9?&%^](?![a-z]))+|([a-z0-9?&a
- 如果字符串只有小写字母->应匹配
- 如果字符串只有大写字母->则应匹配
- 如果字符串只有数字或特殊字符->应匹配
abc
,abc
,123
,abc123
,abc123&^
-应匹配
AbC
,A12b
,AB^%12c
-不应匹配
基本上,我需要以下正则表达式的逆/反:
^(?=.[a-z])(?=.[a-z])。+$
你可以使用这个正则表达式
^(([A-Z0-9?&%^](?![a-z]))+|([a-z0-9?&%^](?![A-Z]))+)$
您可以测试更多的案例
我只添加了character?&%^
作为可能的字符,但是您可以添加任何您喜欢的字符。您可以使用
^(?!.*[A-Z].*[a-z])(?!.*[a-z].*[A-Z])\S+$
或
参见和
当您需要对模式应用更多限制时,这样的环顾解决方案可以在更复杂的场景中使用。否则,考虑一个.
详细信息
-字符串的开头^
-没有大写字母后跟小写字母(?!.[A-Z].[A-Z])
-没有小写字母后跟大写字母(?!.[a-z].[a-z])
-一种正向前瞻,要求在字符串末尾添加除小写ASCII字母((?=(?:[^a-z]+|[^a-z]+)$)
)以外的一个或多个字符,或在字符串末尾添加除大写ASCII字母([^a-z]+
)以外的一个或多个字符[^a-z]+
-1+字符,断线字符除外+
-字符串结束$
- 听起来似乎不需要任何周围环境
要么只匹配
a-z
的字符,要么只匹配非a-z
的字符
^(?:[^a-z]+|[^A-Z]+)$
(已使用)我会选择:
^(?:[^a-z]+?|[^A-Z]+?)$
它转换为“如果整个字符串由非小写字母或非大写字母组成,则匹配字符串。”
使用惰性量词+?
,以便在启用多行标志时遵守结束字符串$
锚定。如果只验证单行字符串,则只需使用+
,不带问号
如果您有特定允许的特殊字符的白名单,请将[^a-Z]
更改为[a-Z0-9()+=-]
,并列出允许的特殊字符
^(?:[^a-z]+?|[^A-Z]+?)$