正则表达式(如何判断符合非指定字符)

herowach 2009-11-05 05:21:45
要求: 只要不是指定的字符串,都正确,否则不正确;
例如:指定字符abc,如何判断只要不是abc就正确的正则表达式(全匹配)
a 正确
ab 正确
abc 错误
abcd 正确
...全文
391 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
herowach 2009-11-06
  • 打赏
  • 举报
回复
看来正则确实无法实现这种校验,只好放弃了。
pf_renren 2009-11-05
  • 打赏
  • 举报
回复
用得时候好像没必要这样
要到到你这种效果 用一个正则表达式匹配后取反就行
  • 打赏
  • 举报
回复
return !str.matches(Pattern.quote("abc"));
herowach 2009-11-05
  • 打赏
  • 举报
回复
倒是看到别人也问过,就是没一个正确的,能判断前3位,我在想能不能通过或判断位数,例如3位是abc,或字符数大于3的都符合,不过不知道该怎么写
sunhaidan 2009-11-05
  • 打赏
  • 举报
回复
只要将后两个字符绑定就可以了!
sunhaidan 2009-11-05
  • 打赏
  • 举报
回复
[a][b]?[cd]?
goosman 2009-11-05
  • 打赏
  • 举报
回复
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
00, 01, 02, 03, 04, 05, 06, 07, 08, 09
10, 11, 12, 13, 14, 15, 16, 17, 18, 19
20, 21, 22, 23, 24, 25, 26, 27, 28, 29
30, 31, 32

匹配这些是用这个^(([12]|0?)|(3))(?(2)\d|[012])$, 你参考参考吧, 下线了...
wei_june 2009-11-05
  • 打赏
  • 举报
回复
那就严格匹配"[a][b][c]"
goosman 2009-11-05
  • 打赏
  • 举报
回复
正则做到应该是没有问题的,

正则支持条件匹配的...

我用正则匹配过同时支持
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
00, 01, 02, 03, 04, 05, 06, 07, 08, 09
10, 11, 12, 13, 14, 15, 16, 17, 18, 19
20, 21, 22, 23, 24, 25, 26, 27, 28, 29
30, 31, 32
除此之外, 不支持其他字符的功能, 我再过20分钟左右下, 需要的话加Q吧, 我论坛比较卡...
herowach 2009-11-05
  • 打赏
  • 举报
回复
不是,就是要abcd也是正确的,但那个正则是:只要是abc开头的都是错误的,我的需求是允许包含,只是不允许等于
goosman 2009-11-05
  • 打赏
  • 举报
回复
你是说有d就不能有c吗???

我QQ285821471, 你加我给我详细说下需求吧, 我下东西, 论坛上卡..呵呵
herowach 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lgg201 的回复:]
引用 5 楼 lgg201 的回复:
^(?=abc).*$


错了, 呵呵, 使用断言匹配
正确的是: ^(?!abc).*$
(?!regular)代表的是一个向前断言非, 断言匹配不会消耗字符串...所以, 只要你不是以abc开始的都可以匹配..
[/Quote]
谢谢,
不过这个我找到过啊,这个只能判断前3位是否包含abc,也就是说abcd仍然是错的
goosman 2009-11-05
  • 打赏
  • 举报
回复
了解更多正则, 请看我的博文: http://blog.csdn.net/lgg201/archive/2009/10/24/4722532.aspx
goosman 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lgg201 的回复:]
^(?=abc).*$
[/Quote]

错了, 呵呵, 使用断言匹配
正确的是: ^(?!abc).*$
(?!regular)代表的是一个向前断言非, 断言匹配不会消耗字符串...所以, 只要你不是以abc开始的都可以匹配..
goosman 2009-11-05
  • 打赏
  • 举报
回复
^(?=abc).*$
herowach 2009-11-05
  • 打赏
  • 举报
回复
不是在JAVA里用,并且如果不用正则改动比较大,只找到了不包含的正则,就是找不到不等于的...
  • 打赏
  • 举报
回复
return !"abc".equals(str);
ivws_19 2009-11-05
  • 打赏
  • 举报
回复
if(/^[abc]+$/.test(str)){
alert();
}
不过这个需要额外的判断,判断str长度是否小于3
herowach 2009-11-05
  • 打赏
  • 举报
回复
很难?

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧