preg_match hjælp

Tags:    php

Hejsa, jeg prøver at lave en "søgningsfunktion der finder længdeangivelse i tekst...

strengen jeg sørger i kan fx. være:

ledning 1.0mm2 2.5m dobbeltkappe

umiddelbart startede jeg med stristr funktionen men den giver jo det problem at både "1.0mm2" og "2.5m" giver match som værende længde da jeg har et array af muligheder...

jeg sørger efter "1.0m", "2.0m", "2.5m" osv...

næste skridt er at jeg har læst lidt om preg_match (som jeg desværre aldrig har brugt..)

men jeg tænker at der kan laves en funktion så det jeg sørger på skal starte med mellemrum og slutte på mellemrum

da søgekriteriet så vil blive "1.0mm2" og ikke bare "1.0m"

kan det lade sig gøre ?

jeg har umiddelbart troet at preg_match skulle se sådan her ud:

$match = preg_match("/\s$soglaengde\s/i",$varenavn,$matches);

men det virker ikke efter hensigten da den stadig matcher på 1.0mm2

(jeg bruger /i da den skal være case-insensitive.

Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 21.11.2013 10:28 af Bruger #5395
2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Regular expressions kan bygges op til at matche lige præcis det format du vælger at bruge, så længe der er en definition af hvornår det starter og slutter.

eks.
Fold kodeboks ind/udKode 


den vil i dit eksempel fange "ledning" og gemme som "type", "2.5m" og gemme som length.

Der er taget en række forbehold, eks. at tykkelsen og længden kan have 1-2 decimaler før og efter punktummet. At der altid er et punktum mv.

Når du arbejder med at opbygge regular expressions, er det en rigtig god ide at have et utility der kan hjælpe dig med det. Jeg bruger ofte JavaScript baserede, som regex101.com/

Der kan du smide dummydata ind og se hvad den fanger :)



Indlæg senest redigeret d. 21.11.2013 20:46 af Bruger #1330
Sørg for at teste efter PCRE hvis du bruger disse validatorer, og skal bruge dit regulære udtryk i PHP eller andre PCRE baserede løsninger.

Foruden vil jeg også henvise til http://debuggex.com - rigtig lækkert tool til Regular Expressions.



t