正则表达式应用:匹配一个匹配内容外的内容

前端之家收集整理的这篇文章主要介绍了正则表达式应用:匹配一个匹配内容外的内容前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

标题有些拗口,实际的应用场景是这样的:给出类似这样一个字符串“abc/def/def/df”,期望匹配其中的“abc/def/def”部分。

第一步的思路想到了匹配最后一个“/”及其后的内容,正则可以这样写:“/[^/]+$”,那么问题来了,怎么匹配剩下的部分呢?

首先想到了利用形如“[^abc]”的反义语法,但经过测试不好用。反思一下“^”后面跟的应该是字符而非正则表达式,只能想起他办法。幸运的是找到了这样一个 帖子(http://bbs.csdn.net/topics/390367204?page=1),给了我启发,在通过查找正则的文档和尝试,找到了解决方法
先给出答案:“.+(?=/[^/]+$)”。引用一下文档:(?=exp)也叫零宽度正预测先行断言,它断言自身出现的位置的后面能匹配表达式exp。答案可以理解为:“.+”自身出现的位置后面能匹配“/[^/]+$”,也就是“/[^/]+$”前的“.+”

启发:根据需要使用其他断言,可以灵活的做到匹配一个匹配格式之外的内容

猜你在找的正则表达式相关文章