Para tu caso te hace falta algo similar
href="http:\/\/(((?!
algo).)*)"
donde
algo será la cadena que quieres excluir.
La explicación es sencilla, igual que
. corresponde a cualquier carácter excepto salto de línea, si se hiciera
(?!algo).*
significa que no puede empezar por
algo pero que tras algo cualquier cosa inclusive
algo puede darse, entonces fallaría siempre que no comenzara con eso. ((excepcion).)* implica que cualquier cosa a cada carácter examinado puede corresponder excepto si es (?!
excepcion), y que
excepcion va antes para que deseche esa iteración y continúe con el siguiente carácter.
* implica que esa comprobación será efectiva 0 o más veces, tantas como sea larga la cadena a comprobar.
O sea, para <a href="http://www.algo.com">enlace</a> valdría
Cita: href="http:\/\/(((?!www\.algo\.com).)*)"
que es finalmente
'href="http:\/\/(((?!' +
variable +').)*)"'
y para capturar el grupo resultante (la url) si hubiera captura y haciendo un ajuste para admitir comilla simple y doble
Código Javascript
:
Ver originalexpr = /href=["'](http:\/\/(((?!www\.algo\.com).)*))["']/
texto = 'href="http://asd.com"';
r = expr.exec(texto);
return r[1];
que devolvería
http://asd.com
Un saludo.