hittade inte ett tillräckligt passande forum för min fråga, om regexp, men med tanke på att jag kör med .net-motorn så tänkte jag ställa frågan här.
Jag vill hitta alla länkar i en text. Kruxet är att jag inte kan hitta dem med hjälp av "a href"-taggen då länkarna står i klartext. Man måste definera dem med http://, Exempel:
Hej, http://sida1.se, http://www.sida2.com/annansida.aspx och http://sida3.nu. Finns också andra sidor som http://www.sida4.ru/mapp/index.php?id=2, https://sida5.com/safe/ samt "http://www.sida6.se/".
Alla ser ju att det är giltiga länkar men jag behöver ett regexp som plockar ut alla.
Här är en enkel variant som jag slängde ihop nu bara, det enda den inte klarar är länk nr 3 som slutar på en punkt. Men den kanske kan åtgärdas när/om du loopar igenom dem.
Det var ett tag sedan jag regexade så den kanske har sina små brister, men detta borde räcka ett tag iaf.
string links = @"Hej, http://sida1.se, http://www.sida2.com/annansida.aspx och http://sida3.nu. Finns också andra sidor som http://www.sida4.ru/mapp/index.php?id=2, https://sida5.com/safe/ samt ""http://www.sida6.se/"". ";
Regex r = new Regex(@"(https?://.*?)([\s,""])", RegexOptions.IgnoreCase);
MatchCollection mc = r.Matches(links);
foreach (Match ma in mc)
{
Console.WriteLine("URL: " + ma.Groups[1].Value );
}
Console.ReadLine();
string links = @"Hej, [url]http://sida1.se[/url], [url]http://www.sida2.com/annansida.aspx[/url] och [url]http://sida3.nu[/url]. Finns också andra sidor som [url]http://www.sida4.ru/mapp/index.php?id=2[/url], [url]https://sida5.com/safe/[/url] samt ""http://www.sida6.se/"". ";
try {
links = Regex.Replace(links, @"\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]", "<a href=\"$0\">$0</a>", RegexOptions.IgnoreCase);
}
catch (ArgumentException ex) {
}
//response.write(links); //links string variable have the html code now.
Tack så mycket! Problemet är att jag har ett regex som jag använt - ett tag - men är inte nöjd, och nu behöver jag verkligen ett bra! Ska titta på det ni skrivit så fort jag får tiden. Men kom gärna med fler förslag som till och med ni själva är nöjda över :) ;)
257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2