---
title: "Sökmönster"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/158960-sökmönster"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Fredde Mannen"
published: "2007-04-05T11:06:03.000Z"
updated: "2007-04-14T06:30:40.000Z"
replies: 5
views: 512
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/158960-sökmönster"
---

# Sökmönster

## #1 — Fredde Mannen, 2007-04-05T11:06Z

Hur skall jag skriva ett sökmönter för att matcha alla rader i ett dokument som följer den form: 

```php
$lang['MENY_HOME'] = "<a href=\"#\">Startsidan</a>";
$lang['MENY_LOGOUT'] = "<a href=\"#\">Logga ut</a>";
```

Jag vill alltså komma åt all text mellan dubbelfnuttarna på varje rad där jag har $lang\['MENY_vadsomhelst'\] = "**\<a href=\\"#\\"\>länk\</a\>**"; 

dvs den feta texten. :)

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

## #2 — The_Hulk, 2007-04-05T12:09Z

vet inte om följande kan lösa det, annars kanske det kan vara en liten bit på väg

```php
preg_match_all("/\$lang\['MENY_[^\]]+']\s*=\s*\"(.+)\";/s", $buf, $match);
```

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

## #3 — Fredde Mannen, 2007-04-05T13:34Z

> **The_Hulk skrev:**
>
> vet inte om följande kan lösa det, annars kanske det kan vara en liten bit på väg
>
>
> ```php
> preg_match_all("/\$lang\['MENY_[^\]]+']\s*=\s*\"(.+)\";/s", $buf, $match);
> ```

Jag får ingen träffa på den, men om jag tarbort \\$ och bara /lang...osv..
så får träffar, returnerar 

```
lang['MENY_HOME'] = "Startsidan"; $lang['MENY_LOGOUT'] = "<a href=\"#\">Logga ut</a>";
```

 .. 
frågan är om jag skall köra då en preg_match_all igen, och plocka ut det som finns mellan dubbelfnuttarna.. eller om det finns någon annat sätt..

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

## #4 — Matte, 2007-04-05T22:56Z

Testa med:

```
"/^\\\$lang\['MENY_[^']+']\s*=\s*\"(.+)\";/m"
```

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

## #5 — Fredde Mannen, 2007-04-13T19:32Z

Detta mönster 

```php
/\$lang\['MENY_[^\]]+']\s*=\s*\"(.+)\";/s
```

 funkade finfint!
Men nu har jag problemet att jag inte vet hur jag skall få det utskrivet.. får bara array eller inget alls.. :s men enligt en sida på nätet där jag kunde testa mönstret kunde den hitta vad jag sökte efter.. men hur skriver jag ut alla som matchade.. :q

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

## #6 — Matte, 2007-04-14T06:30Z

Vad ska du skriva ut?
I arrayen $match\[0\] har du hela raderna.
I arrayen $match\[1\] har du länkarna.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/158960-sökmönster
