昨天学会了如何编写 不要包含指定的字符串内容 的正则表达式写法。
特意写了一篇文章记录了一下:
https://www.cnblogs.com/xiangyuecn/p/10668378.html
里面有一个一直困扰的问题,假设:
提取<abcdef>\n<abczzz>中首个不包含 def 结尾的 abc 标签,只知道def,不知道zzz。
很简单能写成( v2 页面浏览器控制台测试,但 not only javascript ):
/<abc(?!def).+>/.exec("<abcdef>\n<abczzz>")
但往往我们不能写死abc,顺理成章的就写成了:
/<.+(?!def).+>/.exec("<abcdef>\n<abczzz>")
上面这个不生效,昨天刚发现写成这样就可以了:
/<(?:.(?!def))+>/.exec("<abcdef>\n<abczzz>")