Selektiv replace af bestemte links
Jeg er igang med en portal hvor jeg dynamisk henter HTML-sider fra externe services - nu vil jeg så igang med at konvertere relative links sådan at de peger på Portalen selv.Min lille brainstorm har givet mig følgende mulige links
//Relative links
<a href='?'>?</a>
<a href='?test=123'>?test=123</a>
<a href='link.asp?test=abc'>link.asp?test=abc</a>
<a href='link.asp'>link.asp</a>
<a href='mappe/link.asp'>mappe/link.asp</a>
<a href='/mappe/link.asp'>/mappe/link.asp</a>
//Absolutte links
<a href='www.link.asp'>Ignore Absolute Link</a><br>
<a href='http://www.link.asp'>Ignore Absolute Link</a><br>
<a href='http://www.link.asp?'>Ignore Absolute Link</a><br>
<a href='http://www.link.asp?asd=123'>Ignore Absolute Link</a><br>
Spørgsmåler er så: hvordan konstruere jeg en regex som:
1. Ikke matcher links som er absolutte
Klacificeres:
2. Links med Querystring
3. Links uden Querystring
Følgende RegEx finder links MED querystring, men matcher også en Absolut
(<a.+?href=['\"])(.*?[?].+?)(['\"]>)
dvs. jeg mangler at matche en "relativ" href="?" og href="link.asp" (samt dem med mapper ??)
spørgsmålet er om jeg bør snuppe HELE URL'en og parse den, eller om jeg kan grabbe dem jeg skal konvertere med RegExp
NB. jeg arbejder i C# ...
