Följande regexp hittar en url i en text utan att plocka med eventuella komman eller dyl.
(http://|https://|ftp://|mailto:)?[a-zA-Z0-9\-\.]+\.[A-Za-z]+
3 svar · 452 visningar · startad av Travoni
Om jag använder denna funktion och skriver ex. www.sf.se, så kommer kommatecknet med i länken vilket leder till att länken blir fel.
Går det med regexp att undvika detta fenomen?
Private Function convertLink(ByVal strText as string) as string
Dim mDelimit As String
Dim re As Regex
mDelimit = Chr(0)
re = New RegEx("(\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+)", RegexOptions.IgnoreCase)
strText = re.Replace(strText, "<a href=""mailto" & mDelimit & ":$1"">$1</a>")
re = New RegEx("(http://|https://|ftp://|mailto:)(\S)(\S+)", RegexOptions.IgnoreCase)
strText = re.Replace(strText, "<a href=""$1$2" & mDelimit & "$3"" target=""_blank"">$2" & mDelimit & "$3</a>")
re = New RegEx("(www\.(\S)(\S+))", RegexOptions.IgnoreCase)
strText = re.Replace(strText, "<a href=""http://$1"" target=""_blank"">$1</a>")
strText = Replace(strText, mDelimit, "")
convertLink=strText
End Function
Följande regexp hittar en url i en text utan att plocka med eventuella komman eller dyl.
(http://|https://|ftp://|mailto:)?[a-zA-Z0-9\-\.]+\.[A-Za-z]+
Ok, fattar bara inte hur jag skall implementera den i koden.
Kodexempel?
Något sådant här, om jag inte klantat mig någonstans:
re = New RegEx("(http://|https://|ftp://|mailto:)?([a-zA-Z0-9\-\.]+\.[A-Za-z]+)", RegexOptions.IgnoreCase)
strText = re.Replace(strText, "<a href=""$1$2"" target=""_blank"">$2</a>";