---
title: "stränghantering - hitta url"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/85640-stränghantering-hitta-url"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Kromp"
published: "2003-09-10T09:53:50.000Z"
updated: "2004-06-23T14:50:19.000Z"
replies: 10
views: 455
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/85640-stränghantering-hitta-url"
---

# stränghantering - hitta url

## #1 — Kromp, 2003-09-10T09:53Z

nån som har lite schnygg vb.net kod/länk till exempel för att i en textmassa göra länkar av webbadresser som hittas?

Permalänk: https://www.webforum.nu/p/85640

## #2 — andreas_lindh, 2003-09-10T10:03Z

Den här funktionen använder jag

```
Public Shared Function makelink(ByVal y 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)
            y = re.Replace(y, "<a href=""mailto" & mDelimit & ":$1"">$1</a>")
            re = New Regex("([url]http://[/url]|[url]https://[/url]|[url]ftp://[/url]|mailto:)(\S)(\S+)", RegexOptions.IgnoreCase)
            y = re.Replace(y, "<a href=""$1$2" & mDelimit & "$3"" target=""_blank"">$2" & mDelimit & "$3</a>")
            re = New Regex("(www\.(\S)(\S+))", RegexOptions.IgnoreCase)
            y = re.Replace(y, "<a href=""http://$1"" target=""_blank"">$1</a>")
            makelink = Replace(y, mDelimit, "")
        End Function
```

Permalänk: https://www.webforum.nu/p/1154160

## #3 — greggan, 2004-06-22T10:25Z

någon som har lust att förklara lite ungefär hur den här funktionen fungerar? hur använder man alla $1 och $2 osv och när ska man använda \[A-Za-z0-9\] istället för (\\S) osv... försöker bygga en egen funktion och utgår ifrån den här. Försökte kolla lite på msdn om man kan hitta nån lista om vad alla / och \\ och \* används till men hittar inget. Någon som vet och har lust att förklara lite? :)

Permalänk: https://www.webforum.nu/p/1370835

## #4 — greggan, 2004-06-22T11:31Z

jippie. vad kul satt och skrev ett inlägg här och råkade stänga rutan på nåt sätt så nu måste jag skriva om allt.

jag löste problemet genom att testa mig fram lite men undrar nu hur jag ska kunna tillämpa en funktion i den funktionen.

om jag skrever \[user\]greggan\[/user\] vill jag att det blir länken \<a href="userprofile.aspx?userid=1"\>greggan\</a\>

jag har skapat en funktion som läser av användarnamnet och gör om det till användarid. Men jag kan inte tillämpa den funktionen i den här funktionen. funktionen($2) vill jag göra.

```
function nicktoid(txt)
	dim cn as new oledbconnection("PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=E:\Inetpub\Databaser\tihi.mdb;")
	dim cmd as new oledbcommand("select * from users where nickname='" & txt & "'" ,cn)
	dim dr as oledbdatareader
	dim userid as integer
	cn.open()
	dr = cmd.ExecuteReader()
	dr.read()
	userid = dr("userid")
	dr.close()
	cn.close()
	txt = userid
	nicktoid = txt
end function
```

sen har jag den här funktionen

```
Public Shared Function makelink(ByVal y 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)
            y = re.Replace(y, "<a href=""mailto" & mDelimit & ":$1"">$1</a>")
            re = New Regex("([url]http://[/url]|[url]https://[/url]|[url]ftp://[/url]|mailto:)(\S)(\S+)", RegexOptions.IgnoreCase)
            y = re.Replace(y, "<a href=""$1$2" & mDelimit & "$3"" target=""_blank"">$2" & mDelimit & "$3</a>")
            re = New Regex("(www\.(\S)(\S+))", RegexOptions.IgnoreCase)
            y = re.Replace(y, "<a href=""http://$1"" target=""_blank"">$1</a>")
            re = New Regex("(\[user\])((\S)(\S+))(\[\/user\])", RegexOptions.IgnoreCase)
			y = re.Replace(y, "<a href=""userprofile.aspx?userid=$2"" target=""_blank"">$2</a>")
			makelink = Replace(y, mDelimit, "")
End Function
```

om jag nu skriver \[user\]greggan\[/user\] får jag fram att länken blir userid=greggan istället för 1... hur ska jag kunna tillämpa min funktion på $2?? :q

Permalänk: https://www.webforum.nu/p/1370867

## #5 — spango, 2004-06-22T11:57Z

Det enklaste och effektivaste alternativet är väl egentligen att ha en lookupsida som tar emot ett användarnamn i stället (typ *lookup.aspx?name=greggan*). Om den kan hitta det i databasen, omdirigera till rätt profilsida (typ *luserprofile.aspx?id=1*), annars visa ett felmeddelande. Något trevligt sätt att göra det på i regexparna finns desvärre inte...

Permalänk: https://www.webforum.nu/p/1370879

## #6 — greggan, 2004-06-22T13:53Z

hmm.. det där var ju en jävligt bra idé.. ska testa direkt.. men jag kom på en till liten sak. Kan man lösa så att \[user\]-grejjen bara fungerar på namn som finns i databasen? eller är det typ för avancerat?

Permalänk: https://www.webforum.nu/p/1370969

## #7 — greggan, 2004-06-22T14:13Z

det fungerade, och blev bra. :)
sen får vi se hur resten går typ ;)

Permalänk: https://www.webforum.nu/p/1370978

## #8 — spango, 2004-06-22T14:33Z

> **greggan skrev:**
>
> hmm.. det där var ju en jävligt bra idé.. ska testa direkt.. men jag kom på en till liten sak. Kan man lösa så att \[user\]-grejjen bara fungerar på namn som finns i databasen? eller är det typ för avancerat?

Du kan ju använda regexparna för att få fram alla förekomster av \[user\]någonting\[/user\] när inlägget postas, och sedan loopa igenom alla dessa förekomster, kolla om namnen finns och sedan utifrån detta bestämma dig för om du ska skälla ut användaren som skrivit eller ej. Eller så kan du strunta i det ;)

Permalänk: https://www.webforum.nu/p/1370993

## #9 — greggan, 2004-06-22T16:17Z

höhö

jag löste det genom att om man skriver  \[user\]nånsomintefinns\[/user\] så bllir det en länk också men när man klickar på den så fixar redirectsidan och kollar om användaren finns eller inte.. så antingen blir man redirectad till användarens profil om användaren finnns eller så blir man ridirectad till en sida där det står att användaren saknas... \*tihi\*

Permalänk: https://www.webforum.nu/p/1371049

## #10 — toha, 2004-06-23T07:09Z

Kan tipsa om programmet The Regulator som man skriver RegExp-uttryck i. Där kan skriva och testa uttryck som man vill göra, söka efter användbara uttryck som andra lagt upp på nätet samt ladda upp egna som man skrivit.

<http://royo.is-a-geek.com/iserializable/regulator/>

Permalänk: https://www.webforum.nu/p/1374549

## #11 — greggan, 2004-06-23T14:50Z

låter najs.. ska testa det sen. :)

Permalänk: https://www.webforum.nu/p/1374735

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/85640-stränghantering-hitta-url
