Meddelande

Minska
No announcement yet.

Smartare regex för matching av siffror

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Smartare regex för matching av siffror

    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:[kod]/[^0-9]+/[/kod]

    Det fungerar i de flesta fallen. Dock finns det exempel på referenser som kan se ut såhär:[kod]12345 bokningsnummer 3 vecka 32[/kod]

    Då blir "mitt fakturanr" 12345332 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!
    //Micke Andersson
    Hemsida | Kontakta
    ----------------------
    "Det är svårt att vara ödmjuk när man vet att man är bäst".

  • #2
    Vad du vill ha kvar är alltså en harang med 4+ siffror oavsett var den står i texten!
    Livet är kort och Nu!
    Läs mera!
    !?

    Kommentera


    • #3
      Japp, något åt det hållet..
      //Micke Andersson
      Hemsida | Kontakta
      ----------------------
      "Det är svårt att vara ödmjuk när man vet att man är bäst".

      Kommentera


      • #4
        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-kod:
        if (preg_match('/(\d{4,})/'$referens$match)) {
            
        $fakturanummer $match[1];

        "Det finns tre sorters lögn; vanlig lögn, förbannand lögn och statistik" - Mark Twain

        Kommentera


        • #5
          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

          Kommentera


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

            Tack!
            //Micke Andersson
            Hemsida | Kontakta
            ----------------------
            "Det är svårt att vara ödmjuk när man vet att man är bäst".

            Kommentera

            Working...
            X