---
title: "Regexp-strul"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/39073-regexp-strul"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "peterg"
published: "2002-03-06T10:36:08.000Z"
updated: "2002-03-06T14:00:33.000Z"
replies: 2
views: 255
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/39073-regexp-strul"
---

# Regexp-strul

## #1 — peterg, 2002-03-06T10:36Z

Hej=)
Jag undrar om någon kan hjälpa mig med ett litet regexp problem.

Jag använder denna kod

```php
$str = eregi_replace("(\[URL=)((http://|https://|ftp://|mailto:)(([[:alnum:]]|[[:punct:]])*))\](([[:alnum:]]|[[:punct:]])*)\[/URL\]","<a href=\"\\2\">\\6</a>",$str);
```

för att omvandla

```php
[url=http://www.adress.se]Länk[/url]
```

  till en vanlig länk, och det funkar kanonbra, men....
när man skriver in ett mellanslag i den text som ska länkas så funkar det inget bra, tex "Klicka här"

Hur ska jag förändra det reguljära uttrycket för att den ska tillåta mellanslag?

Jag har provat \\s men inget positivt resultat:(

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

## #2 — Marcus, 2002-03-06T12:15Z

Detta fungerar för mig:

```php

	function makeUrl($str) {
		// [a]xxxx://www.url.com[/a]
		$pattern[0] = "#\[a\]([a-z]+?://){1}(.*?)\[/a\]#si";
		$replacement[0] = '<a href="\1\2" target="_blank">\1\2</a>';
		
		// [a]www.url.com[/a]
		$pattern[1] = "#\[a\](.*?)\[/a\]#si";
		$replacement[1] = '<a href="http://\1" target="_blank">\1</A>';
		
		// [url=xxxx://www.url.com]Websajt[/url]
		$pattern[2] = "#\[a=([a-z]+?://){1}(.*?)\](.*?)\[/a\]#si";
		$replacement[2] = '<a href="\1\2" target="_blank">\3</A>';
		
		// [url=www.url.com]Websajt[/url]
		$pattern[3] = "#\[a=(.*?)\](.*?)\[/a\]#si";
		$replacement[3] = '<a href="http://\1" target="_blank">\2</a>';

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

		return $str;
	}

$str = makeUrl($str);
```

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

## #3 — peterg, 2002-03-06T14:00Z

Fixade det!

Jag la till \[\[:space:\]\] och då funkade det =)
..och ett $-tecken så att man kan skapa flera länkar.
Utan dollar-tecknet kunde man bara skapa en länk. 2st länkar gjorde att nästan hela text-stycket blev länkat

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

---

Tråden på webben: https://www.webforum.nu/amne/php/39073-regexp-strul
