Newsgroup: it.comp.www.php
Titolo: preg_match_all problem

ciao a tutti ho un problema con il preg_match mi date una mano per
favore?
allora io ho fatto questo preg per estrarre la stringa "Radar - bla bla
bla -"
$pattern = '/^Radar('.')*NF/';
preg_match_all($pattern, $string, $matches);
print_r($matches);
da:
<td valign="top" style="border: 1 dotted #CCE8DF"
bgcolor="#FFFFFF"><font face="Tahoma" size="1" color="#000080">Radar -
bla bla bla - NF </font></td></tr>
ma ovviamente non funziona cosa sbaglio?
GRAZIE MILLE
SHE
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

scusate la stringa era cosi':
"Radar - bla bla bla - NF"
 $pattern = '/^Radar('.')*NF/';
 preg_match_all($pattern, $string, $matches);
 print_r($matches);
 
 da:
 <td valign="top" style="border: 1 dotted #CCE8DF"
 bgcolor="#FFFFFF"><font face="Tahoma" size="1" color="#000080">Radar -
 bla bla bla - NF </font></td></tr>
 


 
definisci meglio i criteri..
generalizzando..
$pattern = '/Radar.*NF/';
-- 
www.iuz-lab.info

 $pattern = '/^Radar('.')*NF/';
/^Radar(.*)NF/U
o magari
/^Radar([^<>]*)NF/
Leonardo
-- 
Avere studiato senza mettere in pratica e' inutile;
mettere in pratica senza avere studiato e' pericoloso.
                                                - Conphpucio

non va purtroppo, vorra dire che mi rimettero a cercare un espressione
regolare adatta,
ma non c'e' un software che genera delle regex a dipendenza di quelo che
viene immesso?
Se non ci fosse bisognerebbe inventarlo
Grazie 1000


viene immesso?
No, perche' cosa ne sa? Per esempio, tu immetti:
	rava
	fava
	lava
il software non lo sa mica che tu NON vuoi assolutamente "bava", e quindi
al massimo ti genera una regexp tipo
	[rfl]ava
che scarta anche "dava" e "cava", oppure tenta ".ava" o "[a-z]ava" che ti
accetta anche input che non vuoi.
Il software "E'" la regexp... che gia' risponde alla domanda "non c'e' un
software che mi consente di specificare gli input per classi, senza dover
darglieli uno a uno o costruire una macchina a stati efficiente?".
Pero' due giri d'avviamento a /dev/brain vanno sempre dati. Il giorno che
qualcuno tira fuori un software che devi pigiare un bottone e fa tutto il
tuo lavoro, un uomo piu' alato inventera' un software che pigia solo quel
bottone, e a te ti [1] licenziano.
Leonardo
[1] fiorentinismo



Direi che possiamo permettercelo ^__-
Tornando IT.
IMHO il tuo pattern va benone, solo che la stringa di Sheela non inizia
con "Radar", ma con "<td valign [...]", e dunque, togliendo il primo
corconflesso:
/Radar([^<>]*)NF/
la RegExp dovrebbe dare esito positivo. MA - e qui parlo con Sheela -
"Radar" e "NF" sono assolutamente obbligatori; per isolare una
(sotto)stringa, qualche punto di riferimento è indispensabile.
HTH
-- 
mailto: y = i
----------------------------------------
Vivo nel terrore di non essere frainteso 
(Oscar Wilde)

 HTH
Grazie per l'aiuto


 Solo che non riesco cavolo :(
Scusa, se esegui questo mini-script:
<?php
$string='<td valign="top" style="border: 1 dotted #CCE8DF"
 bgcolor="#FFFFFF"><font face="Tahoma" size="1" color="#000080">Radar -
 bla bla bla - NF </font></td></tr>';
 
$pattern = '/Radar([^<>]*)NF/';
 preg_match_all($pattern, $string, $matches);
 echo $matches[1][0];
?>
mi dici per cortesia quale output ottieni?


Solo che non riesco cavolo :(
Ha ragione Catarsi: la stringa inizia per Radar, ma la stringa dove la
stai cercando no. Quindi il ^ non ci va assolutamente.
Il mio [^<>] ("tutto cio' che non sia < e >") l'ho messo per paranoia,
perche' se tu avessi
...bla bla<b><td>RadarX.... NF</td></tr><tr><td>Radar xyz!NF</td>
la stringa
	Radar(.*)NF
rischierebbe di ritornarti "X.... NF</td></tr><tr><td>Radar xyz!".
Dato che fra Radar e NF «di tag non ce n'e'», dicendolo esplicitamente
ottengo due match "X.... " e " xyz!" che e' proprio quello che cerchi.
Leonardo


Scusatemi sono stata poco chiara e molto occupata,
Allora io ho una riga di codice html contenente la stringa che inizia
per Radar e finisce per NF.
esempio:
    <td valign="top" style="border: 1 dotted #CCE8DF"
bgcolor="#FFFFFF"><font face="Tahoma" size="1" color="#000080">Radar -
bla bla bla(non html) NF</font></td>
spero di sia chiaro ora.. sorry ;)


allora lo scriptino di cata mi ritorna :"- bla bla bla -".
e a dire il vero andrebbe fino quasi bene...
Grazie SHE


 e a dire il vero andrebbe fino quasi bene...
Perché "quasi bene"? Se c'è qualcosa che non va si tenta di aggiustare;
già che siam qui cerchiamo di togliere di mezzo il "quasi" :)
[OT] 
Se mi chiami "cata" è molto probabile tu mi conosca. E ora rispondi:
Dove e quando? :-)


 Dove e quando? :-)
Allora ti chiamo cosi' perche' mi sembra simpatico ma non ti conosco ;)
Grazie mille per gli aiuti
