---
title: "Smartare regex för matching av siffror"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/192435-smartare-regex-för-matching-av-siffror"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "MickeA.com"
published: "2014-09-17T04:25:01.000Z"
updated: "2014-11-09T23:58:09.000Z"
replies: 5
views: 2042
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/192435-smartare-regex-för-matching-av-siffror"
---

# Smartare regex för matching av siffror

## #1 — MickeA.com, 2014-09-17T04:25Z

Hej!

Håller på och ska identifiera nummer (fakturanummer i mitt fall) som angetts som referens vid betalning via bank.

Just nu kör jag det lättaste tänkbara med preg_replace för att endast behålla siffror:

```
/[^0-9]+/
```

Det fungerar i de flesta fallen. Dock finns det exempel på referenser som kan se ut såhär:

```
12345 bokningsnummer 3 vecka 32
```

Då blir "mitt fakturanr" 12345**332** vilket gör att den inte hittas i databasen. Kan man snygga till det något så man t.ex. endast behåller det "stycke" som innehåller 4+ siffror som "sitter ihop". Fakturanummer har ju en fast längd?

Tack!

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

## #2 — Lasp, 2014-09-17T08:54Z

Vad du vill ha kvar är alltså en harang med 4+ siffror oavsett var den står i texten!

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

## #3 — MickeA.com, 2014-09-17T09:02Z

Japp, något åt det hållet.. :)

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

## #4 — metalboy, 2014-09-17T09:30Z

Använd preg_match istället och kör följande uttryck: **/(\[0-9\]{4,})/**.
Om du vill kan du byta ut **\[0-9\]** mot **\\d**

```php
if (preg_match('/(\d{4,})/', $referens, $match)) {
    $fakturanummer = $match[1];
}
```

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

## #5 — Nate.A, 2014-09-17T09:35Z

Med preg_match borde du kunna göra något så här /^\[0-9\]{4,}/ förutsatt att faktura numret kommer först. (^= början av strängen, {4,} = 4 eller fler)
<http://regexr.com/39gv3>

Edit: Too slow! metalboy hann före  :)

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

## #6 — MickeA.com, 2014-11-09T23:58Z

Testade och nu klarade funktionen av att hantera/hitta betydligt fler.

Tack!

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

---

Tråden på webben: https://www.webforum.nu/amne/php/192435-smartare-regex-för-matching-av-siffror
