Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

opet ti regularni izrazi

[es] :: PHP :: opet ti regularni izrazi

[ Pregleda: 1107 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

peca89bg
Beograd

Član broj: 202034
Poruke: 354
*.dynamic.isp.telekom.rs.



+6 Profil

icon opet ti regularni izrazi04.07.2011. u 15:15 - pre 156 meseci
Pozdrav svima,

naime, radim na jednom projektu, vucem preko dom+xpath-a stranicu, hvatam div u kome se nalazi podaci i dobijam sledeci string:

Article Number: 601.477.30 Width: 23 7/8" Height: 4 1/2" Length: 43 1/8" Weight: 38lb Quantity: 1Article Number: 601.477.30 Width:60cm Height:11cm Length:110cm Weight:17.3kg Quantity: 1

e sada je problem, samo ovo se nalazi u tom div-u a meni trebaju informacije za width, Weight, Quantity, Height itd.. u bazi..
ni jedan od ovih podataka nije zapisan u nekom tagu ili kako vec da bi mi olaksao posao...

jel moze neko da mi kaze kako bi isao regularni izraz, da izvlacim ove podatke koje su mi potrebni?
substr ne dolazi u obzi, podaci varirarju i nece biti ovako uvek...
trebam da ga generalizujem da uvek i kako god su zapisani da izvucem podatke koje su mi potrebni,
e sad ja kontam da to jedino mogu preko regularnih izraza, a ako neko zna neko drugo resenje bio bih mu veoma zahvalan na pomoci :)
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-3.sezampro.rs.



+33 Profil

icon Re: opet ti regularni izrazi04.07.2011. u 18:02 - pre 156 meseci
A koje ti mere trebaju? Ove u inčima i librima ili u centrimetrima i kilogramima? I taj string baš izgleda tako? Dakle svaki taj zapis je dupliran u jednom redu, pritom spojen, samo se razlikuju merne jedinice?

Ja čak mislim da tu nema potrebe ići sa regexp-om, probaj da explode-uješ taj string po ":" , pa vidi šta dobijaš.
 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: opet ti regularni izrazi04.07.2011. u 21:28 - pre 156 meseci
Možda nešto kao:
Code (php):

$text = 'Article Number: 601.477.30 Width: 23 7/8" Height: 4 1/2" Length: 43 1/8" Weight: 38lb Quantity: 1Article Number: 601.477.30 Width:60cm Height:11cm Length:110cm Weight:17.3kg Quantity: 1';

$pattern = '/((?:[A-Z][a-z]+\s?)+:)([a-z\d."\/\s]+)/';
preg_match_all($pattern, $text, $matches, PREG_SET_ORDER);

echo '<pre>' . print_r($matches, true) . '</pre>';
 



Ili pomoću preg_split funkcije:
Code (php):

$pattern = '/((?:[A-Z][a-z]+\s?)+:)/';
$results = preg_split($pattern, $text, -1, PREG_SPLIT_DELIM_CAPTURE| PREG_SPLIT_NO_EMPTY);

echo '<pre>' . print_r($results, true) . '</pre>';
 


[Ovu poruku je menjao Br@nkoR dana 04.07.2011. u 22:44 GMT+1]
Banned - Not available
 
Odgovor na temu

[es] :: PHP :: opet ti regularni izrazi

[ Pregleda: 1107 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.