---
title: "regexp-pattern: ersätta taggar i text"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/83310-regexp-pattern-ersätta-taggar-i-text"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Peeer"
published: "2003-08-01T21:33:48.000Z"
updated: "2003-08-05T22:36:26.000Z"
replies: 2
views: 256
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/83310-regexp-pattern-ersätta-taggar-i-text"
---

# regexp-pattern: ersätta taggar i text

## #1 — Peeer, 2003-08-01T21:33Z

```
$str = "lång lång lång <sub>text</sub> som innehåller<sub>flera</sub> sub-taggar";

$pattern = "/\<sub>([^\[]*)\<\/sub>/i"; 
$replacement = "<small>$1</small>"; 

$str = preg_replace($pattern, $replacement, $str);
```

Fungerar ju inte riktigt som planerat. Resultatet blir
lång lång lång \<small\>text\</sub\> som innehåller\<sub\>flera\</small\> sub-taggar vilket ju är fel.
Tips på ett korrekt pattern?

r/ så rotar man runt lite bland sina äldre filer och hittar ett fungerande mönster:
/\\\<sub\>(.\*?)\<\\/sub\>/i

/r2 trodde jag.. det fungerar inte om det är en radbrytning (\\n) mellan sub-taggarna.

/r3 Hehe.. nu har jag löst det (mha sökfunktionen):
/\\\<sub\>((.\|\\n)+?)\<\\/sub\>/i

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

## #2 — RiC]-[iE, 2003-08-02T10:20Z

Så här hade jag gjort:

```php
$text = "det här är en sträng <sub>som innehåller\nbåde taggar</sub> och <sub>radbrytningar</sub>";
$text = preg_replace('/<sub>(.*?)<\\/sub>(.|$)/is','<small>\\1</small>\\2',$text);
```

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

## #3 — Peeer, 2003-08-05T22:36Z

$strInput innehåller en sträng som ser ut ungefär såhär:
\<title\>Lite text\</title\>
\<link\><http://url..>\</link\>
\<description\>Ytterligare en massa text\</description\>

Ovanstående matas in i nedstående funktion och meningen är att jag ska få ut något liknande:
\<a href="http://url" title="Ytterligare en massa text"\>Lite text\</a\>
men det vill sig inte riktigt, utan resultatet blir:
Lite text\</a\>\<a href="http://url" title="Ytterligare en massa text"\>, dvs title-texten kommer först. Någon som vet hur jag löser detta?

```php
$patterns[0] = '/<link>(.*?)<\/link>/is';
$patterns[1] = '/<description>(.*?)<\/description>/is';
$patterns[2] = '/<title>(.*?)<\/title>/is';
	
$replacements[0] = '<a href="$1" ';
$replacements[1] = 'title="$1" target="_blank">';
$replacements[2] = '$1</a>';
$temp = preg_replace($patterns,$replacements,$strInput);
```

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

---

Tråden på webben: https://www.webforum.nu/amne/php/83310-regexp-pattern-ersätta-taggar-i-text
