Autor Zpráva
xala
Profil *
Ahoj,
můžete mi někdo poradit s regulárním výrazem?
Potřebuju načíst soubor s údaji (používám file a pak chci rozparsovat údaje po řádcích). Data jsou nějaké řetězce, odděleny různými znaky (mezera, *, -...) ale problém mi dělá tabulátor.
Pokoušel jsem se to vyřešit reg. výrazem např pro 9 údajů oddělených mezerami:
^([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) (.*)$, ale pro ty tabulátory to nejsem schopen nijak zapsat (nejede mi ani [[:space:]] )
Problém je ale pouze když to skript projíždí přímo ze souboru, pokud si výstupní řádek nechám vypsat, pastnu jej na ten regulární výraz pro tabulátory, tak to projde bez problému, takže opravdu si nevím rady:(

Díky
Dero
Profil
A co třeba explode("\t", $line); ... ?
xala
Profil *
Dero nemůžu použít explode protože oddělovač nemusí být nutně pro všechny položky stejný...může být dvakrát tabulátor, jednou hvězdička a zbytek mezery.....ale jestli s tím nepohnu tak to asi překopu na pevnou struktruru a bude :)
Leo
Profil
To mate docela silenou strukturu dat, kdyz mate pokazdy jiny oddelovac, podle ceho ma algoritmus poznat jaky tam zrovna je? Co treba klasicky strednik? Leo
xala
Profil *
Leo struktura se nastavuje výběrem formátu přes formulář. Vím kolik je tam sloupců a jak jsou od sebe odděleny, jsem schopný to udělat pro obyčejné znaky jako oddělovače, jenom ten tabulátor mi nejede. Zatím to tedy vypadá, že ho zruším...
halogan
Profil
Nevím jak POSIX, ale PCRE regexpy mají jako tabulátor klasické \t

> ^([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) (.*)$
^(([^ ]*) ){8}(.*)$
Toto téma je uzamčeno. Odpověď nelze zaslat.