---
title: "Regular Expression"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/192854-regular-expression"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Asa"
published: "2016-01-12T14:28:40.000Z"
updated: "2016-04-03T20:38:41.000Z"
replies: 13
views: 1479
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/192854-regular-expression"
---

# Regular Expression

## #1 — Asa, 2016-01-12T14:28Z

Har liten kod som används att snickra sin egna sida och hur undra jag om hur man skall skriva för att få det som jag vill. 

Har en tagg där man ska kunna fylla i 4 värden i. Sista värdet ska vara left,right eller center. Ex: \[box2=100px,#ffffff,#000000,center\]

Nu undrar jag hur man får in en ifsats som kollar om värde nr 4 är left,right eller center och väljer rätt replacekod. Se nedan hur jag vill det ska va men ej vet hur man skriver i reg Exp.

```
regExp.Pattern = "\[box2=(.*?),(.*?),(.*?),(.*?)\]"
if $4 = "center" then
      strText = regExp.Replace(strText,"<div style=""margin:0 auto 0 auto;border:1px solid $3; width:$1;background-color:$2;padding:10px;margin-bottom:5px;"">")
else
      strText = regExp.Replace(strText,"<div style=""float:$4;margin-left:0px; border:1px solid $3; width:$1;background-color:$2;padding:10px;margin-bottom:5px;"">")
End if
```

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

## #2 — voigtann1, 2016-01-12T20:26Z

du få kolla match grupp och sen kolla den i ett regex collection objekt. 

men annars sätt fjärde regex gruppen till (center\|right\|left) istället för din .\*?

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

## #3 — Asa, 2016-01-12T21:12Z

Hur skriver man det då? Är olika style kod som används om det är
center
eller
right och left

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

## #4 — prplxr, 2016-01-13T08:33Z

Hej, Åsa!

Jag har inte skrivit många rader VBscript de senaste tio åren, men jag gör ett försök. Inga garantier med andra ord!

```
regExp.Pattern = "\[box2=(.*?),(.*?),(.*?),(.*?)\]"

rMatches = regExp.Execute(strText)

For Each rMatch In rMatches
    position = rMatch.SubMatches(3) ' Här finns center/left/right
    If position = "center" Then
        strText = regExp.Replace(strText,"<div style=""margin:0 auto 0 auto;border:1px solid $3; width:$1;background-color:$2;padding:10px;margin-bottom:5px;"">")
    Else
        strText = regExp.Replace(strText,"<div style=""float:$4;margin-left:0px; border:1px solid $3; width:$1;background-color:$2;padding:10px;margin-bottom:5px;"">")
    End If
Next
```

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

## #5 — voigtann1, 2016-01-13T10:47Z

prplxr kommer inte riktigt fungera, då du kommer bara kontrollera den första box2 och köra replace mot den (efter det så har du ersatt alla box2 "taggar".

Sen vill du nog köra lcase på postion så man inte skriver CeNtEr ;)

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

## #6 — prplxr, 2016-01-13T11:12Z

> **[voigtann1 skrev:](https://www.webforum.nu/p/1573883)**
>
> prplxr kommer inte riktigt fungera, då du kommer bara kontrollera den första box2 och köra replace mot den (efter det så har du ersatt alla box2 "taggar".
> 
> Sen vill du nog köra lcase på postion så man inte skriver CeNtEr ;)

Jag hade på känn att det var något jag missade men kunde inte riktigt sätta fingret på vad. Får göra om min kodsnutt lite. Som sagt, är väldigt ringrostig.

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

## #7 — Compusa, 2016-01-20T05:26Z

Ojdå, klassisk ASP med vbscript?
Dags att byta teknik snart  :e

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

## #8 — Asa, 2016-01-20T19:48Z

Ja, men det är bara en vän som vill ha så. Håller nästan helt på med php nuförtiden.

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

## #9 — Asa, 2016-01-26T20:36Z

Kunde någon komma med en kod som fungerade med flera box2?

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

## #10 — voigtann1, 2016-01-27T05:42Z

kolla vad rMatch innehåller Åsa, du har svaret framför dig mer eller mindre. Men hade även nog kollat upp om du inte skall matcha en öppen och en stängning av en tagg, du kommer annars få rätt stora problem med att du kan avluta med x antal \[/box2\] och förstöra din hemsida.

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

## #11 — Asa, 2016-01-27T10:53Z

Hm, okej men jag har typ noll koll på hur man ska göra ialalfall fast jag har svaret framför mig. Jag som har IQ fiskmås kanske?! :/

Vet inte alls hur man skall göra detta då. Har alltid bett om hjälp med det jag ej fattar med Regular Expression så har aldrig lärt mig det.

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

## #12 — Asa, 2016-03-25T21:09Z

Kunde man få ta del av det du skrivit **[voigtann1](http://www.webforum.nu/member/2129-voigtann1)?**

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

## #13 — voigtann1, 2016-04-01T04:33Z

```
Function Box2(byval str)
    Dim re, rMatches
    Set re = new RegExp
    re.IgnoreCase = true
    re.Pattern = "\[box2=(.*?),(.*?),(.*?),(left|right|center)\]"

    set rMatches = re.Execute(str)

    do until rMatches.Count = 0
        For Each rMatch In rMatches
            position = rMatch.SubMatches(3) ' Här finns center/left/right
            If LCase(position) = "center" Then
                str = re.Replace(str, "<div style=""margin:0 auto 5px auto;border:1px solid $3;width:$1;background-color:$2;padding:10px;"">")
            Else
                str = re.Replace(str, "<div style=""float:$4;margin:0 0 5px;border:1px solid $3;width:$1;background-color:$2;padding:10px;"">")
            End If
        Next
        set rMatches = re.Execute(str)
    Loop

    Box2 = str

    set rMatches = Nothing
    Set re = Nothing

End Function
```

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

## #14 — Asa, 2016-04-03T20:38Z

Tack så mycket!

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/192854-regular-expression
