特意写了一篇文章记录了一下:
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>")
.+(?!def)
不会生效,前瞻不会和前面的+、*、{}
起作用吗?这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.