首页 > 解决方案 > 如何改进此 RE 以不以“('”结尾?

问题描述

我有这个正则表达式

href=["'](.*?)["']

我想匹配整个字符串,但它只匹配('并且不包括 explore

href="javascript:openurl('/Xplore/accessinfo.jsp')"

它也必须匹配

href="/iel5/4235/4079606/04079617.pdf?tp=&arnumber=4079617&isnumber=4079606"

第一个链接是唯一的特殊情况,我已经能够将所有其他情况与我提供的正则表达式匹配,我只是想以某种方式排除'第一个字符串中间的。

标签: regex

解决方案


你可以做的是有一个积极的前瞻定义字符串的结尾:

^href=("|').*?(?=\1)\1$

这样,无论是单引号还是双引号,第二个捕获组都会运行,直到找到相同的单引号或双引号。


推荐阅读