js 的正则匹配有没有办法取差集?

2014-09-05 01:49:16 +08:00
 Miorpher
例如,我现在想匹配除了diq三个字母之外的所有的小写字母,网上给出的例子都是写成[a-ce-hj-pr-z]
写起来很麻烦,有没有简便一些的方法,比如取[a-z]和[diq]的差集,应该如何写?
3323 次点击
所在节点    问与答
10 条回复
arnofeng
2014-09-05 01:59:57 +08:00
符号^
arnofeng
2014-09-05 02:05:12 +08:00
(?![au]t\b)
arnofeng
2014-09-05 02:08:11 +08:00
(?![diq])
Miorpher
2014-09-05 02:08:14 +08:00
@arnofeng 具体应该怎么写呢?
如果只写成[^diq]的话不就把除了这三个小写字母之外的(大写字母,数字,符号)字符都匹配到了,可是我只是想匹配除了这三个小写字母之外的所有小写字母而已。
arnofeng
2014-09-05 02:18:15 +08:00
(?![diq])\w 即可
arnofeng
2014-09-05 02:20:20 +08:00
(?![diq])指右边不允许出现diq。。再标准一点是 (?![diq])\w \b

指一个单词里面不能出现diq ,\b是单词边界。
手机打字不太好。
SoloCompany
2014-09-05 02:22:26 +08:00
正则可以有&&操作符的,就不知道js只不支持
arnofeng
2014-09-05 02:26:11 +08:00
我也是刚学几周,贴上相关介绍http://m.blog.csdn.net/blog/jibing57/8446121


还有工具http://tool.chinaz.com/regex/
arnofeng
2014-09-05 02:30:31 +08:00
上面说错了。(?![diq])\w 这个对的,然后加\b不对。

要是精确的话,大括号加个非贪婪模式。

大半夜,不太清醒。不好意思。
viowan
2014-09-05 09:44:13 +08:00
^(?:(?![diq])[a-z])*$
貌似这个可以,用了环视,字符在a-z之间,但是环视的右边不能是diq

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/131815

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX