---
title: "RegExp - Länkar"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/177185-regexp-länkar"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Sasch"
published: "2009-02-26T02:38:31.000Z"
updated: "2009-02-28T00:44:13.000Z"
replies: 7
views: 676
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/asp/177185-regexp-länkar"
---

# RegExp - Länkar

## #1 — Sasch, 2009-02-26T02:38Z

Alltså jag har redan en drös med regexp - koder (som helt säkert hade kunnat effektiviseras rätt hårt.

```
	 Function bbCode(Str)

	     Set objRE = New RegExp
	     objRE.Global = True
	     objRE.IgnoreCase = True
		  objRE.Pattern="\[b\]([\w\W]*?)\[/b\]"
		  Str = objRE.Replace(Str,"<strong>$1</strong>")
	     Set objRE = Nothing

	     Set objRE = New RegExp
	     objRE.Global = True
	     objRE.IgnoreCase = True
		  objRE.Pattern="\[i\]([\w\W]*?)\[/i\]"
		  Str = objRE.Replace(Str,"<em>$1</em>")
	     Set objRE = Nothing

	     Set objRE = New RegExp
	     objRE.Global = True
	     objRE.IgnoreCase = True
		  objRE.Pattern="\[s\]([\w\W]*?)\[/s\]"
		  Str = objRE.Replace(Str,"<span style=""text-decoration: line-through;"">$1</span>")
	     Set objRE = Nothing

	     Set objRE = New RegExp
	     objRE.Global = True
	     objRE.IgnoreCase = True
		  objRE.Pattern="\[mailto\]([\w\W]*?)\[/mailto\]"
		  Str = objRE.Replace(Str,"<a href=""mailto:$1"">$1</a>")
	     Set objRE = Nothing

	     Set objRE = New RegExp
	     objRE.Global = True
	     objRE.IgnoreCase = True
		  objRE.Pattern="\[url\]([\w\W]*?)\[/url\]"
		  Str = objRE.Replace(Str,"<a href=""http://$1"">$1</a>")
	     Set objRE = Nothing

	     Set objRE = New RegExp
	     objRE.Global = True
	     objRE.IgnoreCase = True
		  objRE.Pattern="\[img\]([\w\W]*?)\[/img\]"
			IF left(lCase("&$1&"),7) = "http://" Then
			     Str = objRE.Replace(Str,"<a href=""$1""><img src=""$1"" border=""0"" alt=""inlänkad bild"" /></a>")
			Else
			     Str = objRE.Replace(Str,"<a href=""http://$1""><img src=""http://$1"" border=""0"" alt=""inlänkad bild"" /></a>")
			End IF
	     Set objRE = Nothing
	     bbCode = Str

	End Function
```

Men det är inte det som är problemet. Problemet ligger i att  knasar till mina länkar. För visst borde man kunna skriva www.någonstans.se och <http://www.någonstans.se> och få samma output på länken?

I nuläget så fungerar det egentligen bara att skriva www.någonstans.se för när man använder http:// framför så ger den följande output:
<http://http//www.någonstans.se> och det är ju otrevligt

```
	     Set objRE = New RegExp
	     objRE.Global = True
	     objRE.IgnoreCase = True
		  objRE.Pattern="\[url\]([\w\W]*?)\[/url\]"
		  Str = objRE.Replace(Str,"<a href=""http://$1"">$1</a>")
	     Set objRE = Nothing
```

Jag testade med ifsatser i men det verkade inte som det ville fungera speciellt det heller.

```
	     Set objRE = New RegExp
	     objRE.Global = True
	     objRE.IgnoreCase = True
		  objRE.Pattern="\[url\]([\w\W]*?)\[/url\]"
		IF left(lCase("$1"),13) = "http://" Then
		  Str = objRE.Replace(Str,"<a href=""$1"">$1</a>")
		Else
		  Str = objRE.Replace(Str,"<a href=""http://$1"">$1</a>")
		End IF
	     Set objRE = Nothing
```

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

## #2 — Sasch, 2009-02-26T02:42Z

Det var tydligen så enkelt som att göra på följande vis:

```
	     Set objRE = New RegExp
	     objRE.Global = True
	     objRE.IgnoreCase = True
		  objRE.Pattern="\[url\]([\w\W]*?)\[/url\]"

		  Str = objRE.Replace(Str,"<a href=""$1"">$1</a>")

	     Set objRE = Nothing
```

Fråga 2 då, hur omvandlar man  / [http://www](http://www) med hjälp av regexp?

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

## #3 — voigtann1, 2009-02-26T07:26Z

Det är bara att utveckla vidare från ditt befintliga uttryck

```
		  objRE.Pattern="\[url=([\w\W]*?)\]"
		  Str = objRE.Replace(Str,"<a href=""$1"">$1</a>")
```

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

## #4 — Sasch, 2009-02-26T13:57Z

Skulle man då kunna skriva (för Olles sida\[/ url\] ):

```
     objRE.Pattern="\[url=([\w\W]*?)\](\*?)\[/url\]"
     Str = objRE.Replace(Str."<a href=""$1"">$2</a>")
```

?

För jag misstänker att för varje ? man har så blir det ytterligare en $1 (efter 1, 2 osv...), eller har jag fel?

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

## #5 — voigtann1, 2009-02-26T14:29Z

vare () är en grupp om du inte skriver (?:) och varje grupp är vad du kallar $x (där x är träffen)

du vill nog ändra uttrycket lite:

```
objRE.Pattern="\[url=([\]]+)\](.*?)\[/url\]"
```

bör fungera för dig.

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

## #6 — Sasch, 2009-02-26T23:34Z

Hmm, nej, det verkar inte som att den vill alls med det uttrycket.

[Forumet\[ /url\]

Varför byta ut (\[\\w\\W\]\*?)?

Det fungerade tydligen finfint med:

```
     objRE.Pattern="\[url=([\w\W]*?)\](.*?)\[/url\]"
```

Men jag förstår fortfarande inte riktigt vad du vill komma åt med (\[\\\]\]+)?](http://www.adress.se/forum_thread.asp?fId=19&tId=612)

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

## #7 — voigtann1, 2009-02-27T05:50Z

varför kör du den i huvudtaget?
varför jag byter ut det mot uttrycket är för att då skall den ta alla tecken som INTE är\] vilket är korrekt i ditt fall.

```
Dim subjectString
SubjectString = "[url=http://www.adress.se/forum_thread.asp?fId=19&tId=612]Forumet[/url]"
Dim myRegExp, ResultString
Set myRegExp = New RegExp
myRegExp.IgnoreCase = True
myRegExp.MultiLine = True
myRegExp.Global = True
myRegExp.Pattern = "\[url=([\w\W]*?)\](.*?)\[/url\]"
ResultString = myRegExp.Replace(SubjectString, "<a href=""$1"">$2</a>")
```

fungera för mig med klassisk ASP.

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

## #8 — Sasch, 2009-02-28T00:44Z

```
\[url=([\w\W]*?)\](.*?)\[/url\]
```

Jo, denna kodsnutt fungerar utan några som helst problem för min del med, men det är (\[\\\]\]+) som inte fungerar för min del. Den hoppar bara över länken med den (eller BBCode emulationen om man nu vill det) då jag använder den vilket fick mig att gå tillbaka till (\[\\w\\W\]\*?)\\.

Edit: Åhhh! Naturligtvis, vad dum jag är. Dumt formulerat problem resulterar ju naturligtvis i felaktigt svar oavsett hur riktigt svaret må vara! Haha, mycket tack ska du ha ändå eftersom du ändå löste mitt problem :birp

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/177185-regexp-länkar
