Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 2 odgovora
  • 1.625 pregleda

Najnovija ↓

opet ti regularni izrazi 04.07.2011. u 16:15 · pre 186 meseci #1
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 :)
Re: opet ti regularni izrazi 04.07.2011. u 19:02 · pre 186 meseci #2
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š.
Re: opet ti regularni izrazi 04.07.2011. u 22:28 · pre 186 meseci
izmenjeno 1 put, poslednji put Br@nkoR 04.07.2011. u 22:44
  1. Br@nkoR04.07.2011. u 22:44zapis iz teksta poruke
#3
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>';
 
Potpis
Banned - Not available
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme