我有:
[a-zA-Z0-9[^lL]][a-zA-Z0-9[^oO]][a-zA-Z0-9[^kK]]
我正在玩正则表达式,并希望创建一个正则表达式,它将接受除了'lok'之外的任何三个字母数字字符,无论是大写还是小写的任何组合。由于某种原因,我现在接受输入lok。我的错误在哪里?
答案 0 :(得分:4)
您在l
中加入了o
,k
和a-zA-Z
。如果你想用其他字符类来否定这些字母,你需要使用&&
(intersection)。
你想要的是这样的:
[a-zA-Z0-9&&[^lL]][a-zA-Z0-9&&[^oO]][a-zA-Z0-9&&[^kK]]
但是,根据您要执行的操作,您可以使用negative lookahead/lookbehind完成任务。