/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
regex - preg_split
Fra : Bjarne Jensen


Dato : 17-01-10 23:03

Jeg forsøger at udrage data fra en fil med liner af variabel længde der
afsluttes med LF/CR (x0Dx0A).

Datafelterne er separeret med <tab> (x09).

Visse liner indeholder enkelte tomme datafelter som er repræsenteret ved
<space> (x20).

Dvs at et tomt datafelt altid vil følge efter en <tab>, altså
<tab><space> (x09x20).

Der er altid 19 datafelter incl de tomme.


Jeg har stjålet nedenstående line fra
http://www.php.net/manual/en/function.preg-split.php

$lines=file($file); // $lines is an array containing entire file
// split the phrase by any number of commas or space characters,
// which include " ", \r, \t, \n and \f
$keywords = preg_split("/[\s,]+/", $lines[$i] );
print_r($keywords);


Problemet er tilsynladene, at regex'en i preg_split funktionen herover
ikke skelner mellem <tab> og <space>.
Følgeligt indeholder/viser print_r($keywords) kun de datafelter som ikke
er tomme (<space>).

Det er selvfølgeligt også et problem, at regex ikke lige var på
programmet da jeg gik i skole.

Mvh / Bjarne

 
 
Michael Rasmussen (17-01-2010)
Kommentar
Fra : Michael Rasmussen


Dato : 17-01-10 23:52

On Sun, 17 Jan 2010 23:03:03 +0100
Bjarne Jensen <bjarne.b.jensen@gmail.com> wrote:

>
> Problemet er tilsynladene, at regex'en i preg_split funktionen herover
> ikke skelner mellem <tab> og <space>.
> Følgeligt indeholder/viser print_r($keywords) kun de datafelter som ikke
> er tomme (<space>).
>
Prøv denne: /[\t\s|\s+]/

Husk også at nogen editorer erstatter <tab> med et forud defineret
antal <space>

--
Hilsen/Regards
Michael Rasmussen
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.


Bjarne Jensen (18-01-2010)
Kommentar
Fra : Bjarne Jensen


Dato : 18-01-10 00:53

Sådan - det så straks bedre ud!
Dog bliver der nu indskudt et par ekstra elementer som jeg ikke lige ved
hvor kommer fra men det er absolut brugbart.
Mange tak / Bjarne

Michael Rasmussen wrote:
> On Sun, 17 Jan 2010 23:03:03 +0100
> Bjarne Jensen <bjarne.b.jensen@gmail.com> wrote:
>
>> Problemet er tilsynladene, at regex'en i preg_split funktionen herover
>> ikke skelner mellem <tab> og <space>.
>> Følgeligt indeholder/viser print_r($keywords) kun de datafelter som ikke
>> er tomme (<space>).
>>
> Prøv denne: /[\t\s|\s+]/
>
> Husk også at nogen editorer erstatter <tab> med et forud defineret
> antal <space>
>

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408927
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste