[C#] Probleem met vervangen tekstlinks door html

Pagina: 1
Acties:

  • sjink
  • Registratie: Oktober 2002
  • Laatst online: 03-02-2025
Ik heb bijvoorbeelde de volgende tekst:

code:
1
Dit is een link naar http://www.tweakers.net maar dit is ook een link maar dan in html <a href="http://www.tweakers.net">http://www.tweakers.net</a>


Het replacen van die
code:
1
http://www.tweakers.net
door
code:
1
<a href="http://www.tweakers.net">http://www.tweakers.net</a>
is geen probleem en poepsimpel maar dan loop je natuurlijk tegen het volgende probleem aan.

De link die al netjes met html code erom staat, die gaat hij dan ook replacen
Met als resultaat
code:
1
<a href="<a href="http://www.tweakers.net">http://www.tweakers.net</a>"><a href="http://www.tweakers.net">http://www.tweakers.net</a></a>


Ik ben het in de richting aan het zoeken van een regular expression die checkt of de link gevolgd wordt door een </a>-tag maar krijg hem na veel proberen en zoeken niet aan de gang.

Dit is wat ik tot nu toe heb.
code:
1
\b(http://|https://|ftp://)\w*(?!</a>)\b


Ik heb behoorlijk wat rond gezocht op internet, maar praktisch alle artikelen gaan er van uit dat de invoer met ubb codes of alleen textuele links gebeurt, maar niet een combinatie van tekstuele links en htmllinks

*blup*


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

code:
1
[a-zA-Z]*://[^ <]*(?!</a>)


zoiets zal je mss al dichter brengen...

\ is een escape char en afaik is \w geen speciale code in een regexp ?

ASSUME makes an ASS out of U and ME


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

HIGHGuY:
\ is een escape char en afaik is \w geen speciale code in een regexp ?
\w is een "word character" (wel afhankelijk van implementatie).

Maar \w is sowieso niet aan te raden voor url's, omdat het allesbehalve compleet is voor geldige url karakters.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • sjink
  • Registratie: Oktober 2002
  • Laatst online: 03-02-2025
Voor de geïnteresseerden dit is het geworden

code:
1
\b(?<!<a[^>]+>|<a[^>]+)(http://|https://|ftp://|mailto:)[a-zA-Z0-9._%-]*\b

[ Voor 18% gewijzigd door sjink op 26-08-2005 11:17 ]

*blup*