需求是什么?
上个jsfiddlr调啊
s1这瞎眼高亮 用个交互式的工具来调试会比较方便:
https://regexr.com/
另外个人不推荐用 (.*?) 这种写法:
在某些实现方案里匹配效率低, 容易让人理解错误
可以考虑改用 ([^"]*) , 明确表达"我要匹配一串字符, 其中应该没有双引号" 试试这个?不知道有没有理解错:
(-0\"\]\[-ext-contains=\"([^”\]\[])*\"\])(?!,)
另外自己写的时候一般减号和等号不用转义,所以见到楼主的写法感到还挺新奇。
猜测原来的表达式匹配整行的原因是楼主以为(.*?)会懒匹配到逗号之前,实际上为了尽可能匹配(这里指加上了后面的否定后向断言),从逗号到行末都被纳入了这个(.*?)里,换言之这里贪心匹配的优先级比懒惰匹配更高。
不过以上也是照答案来强行解释了,不同的正则实现有不同的行为非常正常,多踩坑就好。
页:
[1]