---
title: "regExp.Pattern-kombination"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/76876-regexp-pattern-kombination"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Palle"
published: "2003-05-14T07:54:08.000Z"
updated: "2004-01-04T20:33:10.000Z"
replies: 24
views: 974
page: 1
pages: 2
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/76876-regexp-pattern-kombination"
---

# regExp.Pattern-kombination

_Sida 1 av 2._

## #1 — Palle, 2003-05-14T07:54Z

Jag har en regExp-funktion som omvandlar <http://> till länkar, denna funktion 
skulle jag nu vilja kombinera med en \[ url=länk\]länktext\-funktion också..

Eftersom jag inte är så hajj på detta med regExp så undrar jag nu hur jag 
ska modifiera mina pattern för att få det att fungera i en och samma funktion?

De två nuvarande: 

```
[red]regExp.Pattern = "((?:mailto\:|(?:news|(?:ht|f)tp(?:s?))\://){1}\S+)"

regExp.Pattern = "\[url=(.*)\](.*)\[/url\]" [/red]
```

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

## #2 — m_soderlund, 2003-05-14T07:59Z

Kanske vore denna funktion något att bygga vidare på:

```
<%
Function FCode(str)

str = Replace(str,"<","&lt;")
str = Replace(str,VbCrLf,"<br />")

Set objRE = New regexp
objRE.Global = true
objRE.IgnoreCase = true

[red]'start citering
objRE.Pattern = "\[citat=(.*?)](\w\s)*"
str = objRE.Replace(str,"<br />[citat=$1]")

objRE.Pattern = "\[citat=(.*?)]"
str = objRE.Replace(str,"<blockquote><b>$1</b> skrev:<hr /><span class=""citat"">")

objRE.Pattern = "\[citat\](\w[åäö]*\s[åäö]*)*"
str = objRE.Replace(str,"<blockquote><br /><span class=""cit"">Citat:</span><hr /><span class=""citat"">$1")

objRE.Pattern = "\[/citat\]"
str = objRE.Replace(str,"</span><hr /></blockquote>")
'slut citering[/red]

'start kod
objRE.Pattern = "\[kod\]"
str = objRE.Replace(str,"<blockquote><span class=""kod"">Kod:<hr />")

objRE.Pattern = "\[/kod\]"
str = objRE.Replace(str,"<hr /></span></blockquote>")
'slut kod

objRE.Pattern = "\[(b|/b|i|/i|u|/u)\]"
str = objRE.Replace(str,"<$1>")

[red]
'fixa länkar och e-postadresser
objRE.Pattern = "([url]www.[/url][^ ]*[a-z])|([url]http://[/url][^ ]*[a-z])"
str = objRE.Replace(str,"<a href=""$1$2"" target=""_blank"">$1$2</a>")
[/red]

'buggfixningar
str = Replace(str,"""www","""http://www")
str = Replace(str,"""http://www""","""www""")

str = Replace(str,"<br""","""")
str = Replace(str,"<br</a> />","</a><br />")

str = Replace(str,"</span><hr""","""")
str = Replace(str,"</span><hr</a> />","</a></span><hr />")

str = Replace(str,"<blockquote><span""","""")
str = Replace(str,"<blockquote><span</a>","</a><span")
str = Replace(str,"</b</a>>","</b>")
'slut

[red]objRE.Pattern = "([\w~\-\.]+@[\w~\-\.]+[a-z])"
str = objRE.Replace(str,"<a href=""mailto:$1"">$1</a>")
'slut länkar och e-postadresser[/red]

Set objRE = Nothing

Fcode = str
End Function
%>
```

Kolla extra mycket på den röda koden, kanske kan hjälpa dig lite grann? En sökning på wF ger en hel del, men ej det man önskar.. :(

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

## #3 — Palle, 2003-05-14T08:20Z

Nja.. gav inte så mycket tyvärr..

Gjorde istället om javascript-funktionen som printar ut länkarna  så att när man 
vill använda \[ url=länk\]länktext så tas inte http :// med i länken.. :)

```
[red]regExp.Pattern = "((?:mailto\:|(?:news|(?:ht|f)tp(?:s?))\://){1}\S+)"
str = regExp.Replace(str, "<a href=""redir.asp?url=$1"">$1</a>")
				
regExp.Pattern = "\[url=(.*)\](.*)\[/url\]" 
makeOutput = regExp.Replace(str, "<a href=""redir.asp?url=[b]http://[/b]$1"">$2</a>")[/red]
```

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

## #4 — m_soderlund, 2003-05-14T08:26Z

Det är bra Palle. :D
Men kan man nu använda både \[url=nått&#93;beskrivning\[/url&#93; och skriva vanliga länkar med hjälp av din kod?

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

## #5 — Palle, 2003-05-14T08:28Z

Japp det kan man. :)

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

## #6 — m_soderlund, 2003-05-14T08:29Z

Tjohoo, \*lägger till denna tråd i min länksamling\*.

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

## #7 — Calevan, 2003-05-22T10:33Z

Är det möjligt att få någon som förklarar regExp.Pattern och hur man inplementerar denna kod på sin sida? för det verkar vara precis det jag vill göra...

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

## #8 — m_soderlund, 2003-05-22T10:39Z

```
Function Fix(str)

Set objRE = New regexp
objRE.Global = true
objRE.IgnoreCase = true

regExp.Pattern = "((?:mailto\:|(?:news|(?:ht|f)tp(?:s?))\://){1}\S+)"
str = regExp.Replace(str, "<a href=""redir.asp?url=$1"">$1</a>")
				
regExp.Pattern = "\[ url=(.*)\](.*)\[/url\]" 
makeOutput = regExp.Replace(str, "<a href=""redir.asp?url=http://$1"">$2</a>")

Fix = str
End Function
```

 \_UTAN\_ mellanslag i sista regExp.Pattern i \[ url..

```
<%
Response.Write Fix("Hej hopp - detta är en länk: [ url=http://www.webforum.hel.nu]klick[/url]")
%>
```

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

## #9 — Calevan, 2003-05-22T19:52Z

okey, jag är total nybörjare på det här, och jag fick inte det ovan att funka... men jag kanske bara är dum?

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

## #10 — Palle, 2003-05-22T20:00Z

På vilket sätt fick du inte koden att fungera?
Fick du något felmeddelande?

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

## #11 — Calevan, 2003-05-22T20:06Z

```
<html>
<%
Function Fix(str)

Set objRE = New regexp
objRE.Global = true
objRE.IgnoreCase = true

regExp.Pattern = "((?:mailto\:|(?:news|(?:ht|f)tp(?:s?))\://){1}\S+)"
str = regExp.Replace(str, "<a href=""redir.asp?url=$1"">$1</a>")
				
regExp.Pattern = "\[ url=(.*)\](.*)\[/url\]" 
makeOutput = regExp.Replace(str, "<a href=""redir.asp?url=http://$1"">$2</a>")

Fix = str
End Function
%>
<head>
<title>Lite text</title>
</head>
<body>
<p>Lite text.</p>
<% Response.Write Fix("Hej hopp - detta är en länk: [url=http://www.webforum.hel.nu]klick[/url]") %>
</body>
</html>
```

Felmedelande:

Lite text.

Microsoft VBScript runtime error '800a000d' 

Type mismatch: '\[string: "Hej hopp - detta är "\]' 

/kommitteer/pyrot/fredrik/index.asp, line 30

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

## #12 — Palle, 2003-05-22T20:14Z

Aha, när det är ju inte så konstigt ser jag.. är en del fel i koden som m_soderlund postade. ;)

Bifogar här en fungerande kod i TXT-format, detta eftersom wF ändrar en del i koden.

Testa denna istället:

Bilagor:

- [wf_regexp.txt](https://www.webforum.nu/a/1492.txt)

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

## #13 — Calevan, 2003-05-22T20:18Z

Man tackar! det funkar utmärkt, nu ska jag bara försöka få in detta i mitt lilla projekt som jag pysslar med. Och eftersom det är tentavecka nu har jag gott om tid :)

tack!

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

## #14 — Palle, 2003-05-22T20:19Z

Gutt mos! :bire

Du kan placera funktionen vart du vill på sidan, den behöver inte ligga i samband med 
där den ska användas och du kan anropa den på flera ställen i din kod.

Bara att höra av sig igen vettu om du kör fast. :)

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

## #15 — Calevan, 2003-05-22T20:35Z

hmmm, då passar jag på att fråga direkt!

i funktionen står följande rad:

```
makeOutput = regExp.Replace(str, "<a href=""redir.asp?url=http://$1"">$2</a>")
```

Nu är det så att jag vill att länken ska gå till en address som är definierad i de två variablerna "path" och "katalog" och sen det som står i url nedan:
\[ url=www.webforum.nu\]LÄNK

så path innehåller:
<http://www.minsida.se/>
katalog:
2003/idag/
och i \[url= står det
minsida.asp

eftersom jag inte vet vad $1 och $2 betyder i ursprungskoden har jag lite svårt med att modifiera denna... 

tack!

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

## #16 — Palle, 2003-05-22T20:52Z

Om du kollar på det pattern som vi använder: 

```
[red]regExp.Pattern = "\&#91;url=(.*)\](.*)\[/url\]" [/red]
```

 I ett pattern definerar man det man söker efter, i detta fall är det koden &#91;url=XXX\]YYY som vi söker efter och vill modifiera.

$1 ger oss värdet från den första grupperingen, XXX i vårt lilla exempel. -------^
$2 ger oss värdet från den andra grupperingen, YYY.

Med Replace ersätter vi sedan $1 med själva URL´n och $2 med det som formar texten i länken.. 

```
[red]regExp.Replace(str, "<a href=""[b]$1[/b]"">[b]$2[/b]</a>")[/red]
```

Hänger du med? ;)

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

## #17 — Calevan, 2003-05-22T21:03Z

ah, ok! då är jag med på den biten. Nu har jag litte fnutt problem. I denna koden:

```
regExp.Replace(str, "<a href=""$1"">$2</a>")
```

vill jag få in innehållet i en variabel före $1 och det verkar stört omöjligt för mig med alla dessa fnuttar överallt. något tips?

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

## #18 — Palle, 2003-05-22T21:06Z

Ok, får vi se om jag förstod vad du menade.. ;)

Så här:

```
[red]regExp.Replace(str, "<a href=""[blue]"& variabel &"[/blue]$1"">$2</a>")[/red]
```

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

## #19 — Calevan, 2003-05-22T21:10Z

Denna fnuttdjungel, där var en kombination jag inte provade. Den fungerade utmärkt!

tackar

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

## #20 — Palle, 2003-05-22T21:15Z

np! :bire

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/76876-regexp-pattern-kombination  
Nästa sida: https://www.webforum.nu/amne/asp/76876-regexp-pattern-kombination/page2.md
