---
title: "ta bort tecken mellan vissa tecken.."
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/84986-ta-bort-tecken-mellan-vissa-tecken"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "peterpops"
published: "2003-09-01T13:15:04.000Z"
updated: "2003-09-02T08:15:46.000Z"
replies: 4
views: 339
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/php/84986-ta-bort-tecken-mellan-vissa-tecken"
---

# ta bort tecken mellan vissa tecken..

## #1 — peterpops, 2003-09-01T13:15Z

Öhm, väldigt dålig rubrik känner jag, fast kommer inte på något annat.

Jo, jag har en sträng som kan se ut som följande:

\[b&nbsp&nbsp;b4af7eb157\]\[color&nbsp&nbsp;blue&nbsp&nbsp;b4af7eb157\]Nisses\[&nbsp&nbsp;color&nbsp&nbsp;b4af7eb157\]\[&nbsp&nbsp;b&nbsp&nbsp;b4af7eb157\]&nbsp;s BMW är finast,\[b&nbsp&nbsp;b4af7eb157\]\[color&nbsp&nbsp;blue&nbsp&nbsp;b4af7eb157\]Johan\[&nbsp&nbsp;color&nbsp&nbsp;b4af7eb157\]\[&nbsp&nbsp;b&nbsp&nbsp;b4af7eb157\]&nbsp;s BMW &nbsp&nbsp; är grå!

Jag vill nu "ta bort" /ersätta alla tecken i denna strängen som finns i emellan tecknen \[ och \], så att exemplet ovan ENDAST skriver ut detta istället:
Nisses BMW är finast, Johans BMW är grå!

Har försökt, sök på forumet, php-manualen etc. utan framgång. Jag är inte speciellt haj på det här med regular expressions och allt vad det heter, som jag misstänker kan hjälpa till här.
Ytterst tacksam för svar.

Och tack för ett ovärderligt forum!  :birp

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

## #2 — dectgap, 2003-09-01T13:32Z

```php
$str = preg_replace("/\\[[^\\]]*\\]/", "", $str);
```

EDIT:
Irriterande att forumet plockar bort de backslashes jag skriver...

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

## #3 — Matte, 2003-09-01T14:30Z

Borde också gå bra med:

```php
$str = preg_replace("/\\[.*?]/", "", $str);
```

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

## #4 — peterpops, 2003-09-02T06:40Z

ovanståeende rader fungerade alldelles utmärkt. Tackar så mycket.

Skulle gärna, om någon har lust att ta sig tid, få ovanståeende strängar förklarade, som en liten introduktion till reg. exp.

Gärna lite guider till sidor om reg. exp. också så man slipper ställa sådana här pinsamma frågor i fortsättningen.  :r

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

## #5 — Matte, 2003-09-02T08:15Z

Först en liten förbättring om du skulle ha radbrytning inom dina hakparenteser:

```php
$str = preg_replace("/\\[.*?]/s", "", $str);
```

 

Hakparenteser \[ och \] (i kombination med varandra) är normalt Metatecken i det reguljära uttrycket, så därför sätter man ett backslash framför (escape-tecken) för att det verkligen ska betyda bokstavligen tecknet \[.

. är nästan vilket tecken som helst.

\* betyder 0 (noll) eller flera, i det här fallet av vilket tecken som helst.

? betyder normalt noll eller ett, men i det här fallet så betyder det att uttrycket inte ska vara girigt. Utan frågetecknet så hade allt till sista \] i strängen tagits bort. 
Hade man inte använt frågetecknet hade man istället kunnat skriva:

```php
$str = preg_replace("/\\[.*]/sU", "", $str);
```

 
Där U-et hade betytt att inte vara girig (ungreedy).

Växeln s betyder att även radbyte ska tas med som vilket tecken som helst.

/ i början och slutet är begränsningstecken för uttrycket.

Du kan läsa mer om det här:
<http://se.php.net/manual/en/pcre.pattern.syntax.php>
<http://se.php.net/manual/en/pcre.pattern.modifiers.php>

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

---

Tråden på webben: https://www.webforum.nu/amne/php/84986-ta-bort-tecken-mellan-vissa-tecken
