14. september 2005 - 15:20Der er
12 kommentarer og 1 løsning
regex: opdele informationer i en tekststreng
Hej,
Jeg vil gerne have følgende tekststreng opdelt i et array, og de steder hvor der er flere data i ét felt (dem med " som tekstseparetor), skal også medtages - eventuelt som et array under overstående array:
Komma er separator og " er tekstseparator.
Der er 150 point samt en god flaske rødvin hvis nogle kan komme med en effektiv løsning.
Nedestående er én linje:
NS002,"1 Bærepose med logo",Pose,"60,00",1100,,"3,75",2710,"Netto",,,,,EUR,"""EUR,""""5,50"""",""""1 Bærepose med logo"""",1150,,bags,"",""DKS,""""60,00"""",""""1 Bærepose med logo"""",1110,S25,"",""DKT,""""60,00"""",""""1 Bærepose med logo"""",1120,S25,""",-10,0,200,"38554,5814479167","38607,5053211806",56,"3.052,50","""""",,0,,111
Du kunne evt lave: $nytArray = array(); $nytArray = explode(",",$dintekst); Så bliver hele teksten delt ved , Så skal vi bagefter have delt ved: " Men dem synes jeg ikke der er system i?
Prøver lige at beskrive systemet, det kan være en kende uoverskueligt.
Komma (,) adskiller.
Gåseøjne (") er tekstseparator, og der kan åbenbart være flere ved siden af hinanden.
Jeg ved ikke om det er nemmere at jeg fortæller hvad vil have - fortæller det med udgangspunkt i overstående eksempel, og bruger tal til at vise placeringer:
1 = NS002 2 = 1 Bærepose med logo 3 = Pose 4 = 60,00 9 = Netto
Og så vil jeg gerne have den pris der kommer efter DKS (60,00), prisen der kommer efter DKT (60,00).
Det er ikke på alle at DKT og DKS optræder, enkelte steder optræder de slet ikke og andre steder optræder de kun en af hver.
Ja det ser fint ud, men det sker tit at der er kommaer indenfor tekst-separatorerne, derfor må den ikke medtage disse, når den kører dem gennem explode()
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.