Estoy queriendo escribir una expresion regular para filtrar links a paginas exteriores. Los resultados deberían ser todos los links internos, que no empiezen con #, ni contengan http, www o .com
La primera dificultad es negar el primer caracter. Si pongo esto, me elije un caracter que no sea >, pero que puede ser por ejemplo "h".
[^#]
Tengo escrito un look forward para evitar links que contengan http:
href="((?:(?!http).)*)"
Pero no encuentro manera de negar dos posibilidades a la vez. Hay algo escrito en estas paginas, pero no pude aplicarlo:
http://www.ibm.com/developerworks/op...os-php-regex2/ (Listing 4. Look-ahead example)
http://www.perlmonks.org/?node_id=518444 (Nesting)
Tendría que ser esto:
/<a href="((?: (?!http) | (?!www) .)*)">(.*)<\/a>/is
o esto:
/<a href="(?= (?: (?!http)) | (?:(?!www) .)*)">(.*)<\/a>/is
Probe a mi manera, así, pero tampoco va: ((?:(?![http|www]).)*)
Alguna ayuda please?