正则如何匹配非abc或xyz以外的任何字符串

xuyongtong 2011-10-27 05:12:34
如题

初学正则表达式

知道如何取反单个字符[^abc] 匹配除了abc以外的所有字符

但是我想 匹配除了 abc和 xyz以外的所有字符串 怎么写 ??
...全文
2118 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuyongtong 2012-08-14
  • 打赏
  • 举报
回复
3楼的回答解决不了问题 正如6楼所言

[^(abc|xyz)]

好像并不是判断多个字符的非 不过也谢谢

还是采用我在2楼的办法吧 虽然不好看 能用最起码

算了 结贴吧 3 楼和6楼各10分
zgzglike 2011-11-02
  • 打赏
  • 举报
回复
想知道答案。
ootwo 2011-10-31
  • 打赏
  • 举报
回复
答案呢
zgzglike 2011-10-31
  • 打赏
  • 举报
回复
楼上的大牛,人家是要 非 ^ 的格式啊。
q107770540 2011-10-31
  • 打赏
  • 举报
回复
var s = "123abc456xayz890";
var re = /(abc|xyz)/gi;
alert( s.replace(re,'') )

zgzglike 2011-10-31
  • 打赏
  • 举报
回复
正在学习正则
ootwo 2011-10-29
  • 打赏
  • 举报
回复
up......
kyzy_yy_pm 2011-10-28
  • 打赏
  • 举报
回复
var s = "123abc456xayz890";
var re = /([^(abc|xyz)]{3})*/gi;
alert( s.match(re).join("") )
ootwo 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kyzy_yy_pm 的回复:]
单个字符的非
[^a|b]
多个字符的非
[^(str1|str2)]
[/Quote]

高手这样是错的吧,

var s = "123abc456xayz890";
var re = /[^(abc|xyz)]{3}/gi;
alert( s.match(re) ) // 123 456 890 // 这里没分组成功啊。
// 为什么不是 123 456 xay z89
kyzy_yy_pm 2011-10-28
  • 打赏
  • 举报
回复
单个字符的非
[^a|b]
多个字符的非
[^(str1|str2)]
ootwo 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 kyzy_yy_pm 的回复:]
var s = "123abc456xayz890";
var re = /([^(abc|xyz)]{3})*/gi;
alert( s.match(re).join("") )
[/Quote]


我的意思是 这里[^(abc|xyz)] 并没有判断多个字符的非。

var s = "123abc456xayz890";
var re = /[^(abc|xyz)]{3}/gi; // 匹配不是 abc xyz 的三个连续字符
alert( s.match(re) ) // 123 456 890
// 为什么不是 123 456 xay z89

xuyongtong 2011-10-27
  • 打赏
  • 举报
回复
刚才自己测试了下

(.*\.[^(htm|html)]*(?!htm|html))

可以匹配所有非html 和 htm 后缀的路径

但是我自己也没明白为什么行 而且我觉得有冗余
ootwo 2011-10-27
  • 打赏
  • 举报
回复
帮顶!!!

24,923

社区成员

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

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