---
title: "Vilken serie tecken som helst"
type: "forum-thread"
url: "https://www.webforum.nu/amne/webbutveckling/146244-vilken-serie-tecken-som-helst"
topic: "Webbutveckling"
topic_url: "https://www.webforum.nu/amne/webbutveckling"
author: "M@rtin"
published: "2006-04-30T00:01:01.000Z"
updated: "2006-05-01T09:50:47.000Z"
replies: 13
views: 736
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/webbutveckling/146244-vilken-serie-tecken-som-helst"
---

# Vilken serie tecken som helst

## #1 — M@rtin, 2006-04-30T00:01Z

Hur matchar man vilken serie tecken som helst? "." matchar ju inte \\n vilket ställer till stora problem. 

Det jag vill göra är att ersätta \[ b \]vilken serie tecken som helst även med \\n nya rader\[/ b \] med \<b\>vilken serie....\</b\>

Någon som vet?

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

## #2 — colione, 2006-04-30T00:22Z

\[\\s\\S\]\*

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

## #3 — M@rtin, 2006-04-30T00:30Z

Tusen tack för det snabba svaret, funkar klocka.

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

## #4 — M@rtin, 2006-04-30T00:54Z

Det uppstod dock ett annat problem, när jag gjorde på detta sätt.

\[ b \] lite fet text \[/ b \] lite text som inte är fet \[ b \] mer fet text \[/ b \]
ersätts nu med:
\<b\> lite fet text \[/ b \] lite text som inte är fet \[ b \] mer fet text \</b\>

Vilket blir jättetokigt. Verkar som att den går igenom från både vänster och höger istället för att börja vid första taggen och sedan sluta när den når nästa. 

Är det möjligt att lösa detta problem?

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

## #5 — nitro2k01, 2006-04-30T08:22Z

Tva saker ska du gora. 
1) Satta pa greedy matchning. Detta varierar beroende pa vilken variant det handlar om
2) Sedan bor du anvanda detta uttryck for att matcha valfritt tecken: \[^\[\]\* alt detta \[^\\\[\]\* (Hakparentesen ar escapad, kan behovas.)
Detta uttryck tillater inte nastlade taggar, men jag tror att det ar en bra borjan for dig.

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

## #6 — colione, 2006-04-30T08:31Z

För en matchning av nästlade taggar i php: <http://forums.devnetwork.net/viewtopic.php?t=45346>

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

## #7 — Erik Juhlin, 2006-04-30T08:53Z

Det är ju inte nestlade taggar han vill åt. räcker med att han skriver \[\\s\\S\]\*? så är han i hamn.

nitro2k01: Menar du inte stänga av greedy matchning? greedy matching uppfattar jag som att den matchar på så mycket som möjligt...

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

## #8 — nitro2k01, 2006-04-30T21:12Z

```
"[-b]Fett fett![-/b] Fett ofett![-b]Fett fett![-/b]".replace(/\[b\]([^[]*)\[\/b\]/i, "<b>$1</b>")
--> <b>Fett fett!</b> Fett ofett![-b]Fett fett![-/b]
"[-b]Fett fett![-/b] Fett ofett![-b]Fett fett![-/b]".replace(/\[b\]([^[]*)\[\/b\]/ig, "<b>$1</b>")
--> <b>Fett fett!</b> Fett ofett!<b>Fett fett!</b>
```

Jamfor resultaten ovan. Greedy ar ratt i detta fall!

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

## #9 — Csson, 2006-04-30T21:26Z

/g är inte greedy, /g är ersätt alla. \* är greedy, \*? är o-greedy. \* eller \*? spelar ingen roll med \[^\[\] eftersom den då kommer att fastna på första möjliga \[ i båda fallen. Byter man ut \[^\[\] till \[\\s\\S\] så krävs o-greedy för att det ska funka. Alltså är \[^\[\] bättre, eftersom det inte är alla tecken som ska matchas, utan alla utom \[.

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

## #10 — Erik Juhlin, 2006-04-30T21:41Z

Tror g står för global. ? används som Csson skrev för att det inte ska vara greedy.

Sen så är \[^\[\] inte så bra eftersom att man inte kommer få nån match på t.ex. \[ b \]...\[...\[ /b \]

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

## #11 — M@rtin, 2006-05-01T09:11Z

Oj oj, många svar av delade meningar. Jag försökte sätta greedy genom att skriva g efter # men då försvann allt så jag tog bort det och körde med \[^\[\]\* bara och det verkar fungera:

```
      $content = preg_replace('#\[ b ]([^[]*)\[/ b ]#i','<b>\1</b>',$content);
      $content = preg_replace('#\[ i ]([^[]*)\[/ i ]#i','<i>\1</i>',$content);
```

Detta verkar fungera för alla fall jag lyckats komma på:
\[ b \]fett\[/ b \]
\[ b \]fett\[/ b \] ofett \[ b \] fett 
\[ b \]fett\[/ b \] ofett men \[ i \] kursivt \[/ i \] \[/ b \]
\[ b \]fett\[/ b \] med öppna h\[akar \[/ b\]

Nåt jag missat?

Annars tack för all hjälp ! :)

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

## #12 — M@rtin, 2006-05-01T09:25Z

Nu var jag nog lite för snabb med att svara igen, hittade ett problem, om man skriver koden i den ordning som jag skrev ovanför så funkar t.ex.
\[ i \]\[ b \]fett & italic\[/ b \]\[/ i \]
men inte
\[ b \]\[ i \]fett & italic\[/ i \]\[/ b \]
då blir den kursiv men \[ b \] taggen skrivs ut

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

## #13 — Erik Juhlin, 2006-05-01T09:39Z

Om du läser inläggen ovanför så ser du lösningen.

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

## #14 — M@rtin, 2006-05-01T09:50Z

Hehe ja okej, ursäkta.

För tydlighetens skull:

```
      $content = preg_replace('#\[ b ]([\s\S]*?)\[/ b ]#i','<b>\1</b>',$content);
      $content = preg_replace('#\[ i ]([\s\S]*?)\[/ i ]#i','<i>\1</i>',$content);
```

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

---

Tråden på webben: https://www.webforum.nu/amne/webbutveckling/146244-vilken-serie-tecken-som-helst
