我正在创建一个gulp插件来动态地重新激活URL,但显然希望避免更改<code>
或<pre>
标记内的任何引用。该插件以特定格式搜索引用,但在Javascript正则表达式中没有负面的后视,我不确定如何排除<code>
或<pre>
中的引用。
现在,我的正则表达式如下。有没有办法让我编辑它以排除<code>
或<pre>
之间的网址,或者包含那些匹配后用于过滤事后的标记?
var handle = /*handle for referential directory*/;
var search = new RegExp('(?:=|url\()\s?[\'\"](' + handle + ')\/\/(\S+)[\'\"]\s?(?:\))?','g');
答案 0 :(得分:0)
在PCRE兼容的正则表达式中,简单的方法是使用<code>.*?</code>(*SKIP)(*FAIL)|http.......
(其中.......
是您首选的URL检测正则表达式)但JS没有这么奢侈。
但是,你可以做的是......
result = input.replace(/(<code>.*?<\/code>)|(http.....)/g,function(m,code,url) {
if( code) return code; // code block, leave unchanged
// do something with url here
});