Linux-magazine.it Forum
Maggio 26, 2013, 01:21:17 am *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?
 
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: PHP + espressioni regolari  (Letto 1453 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
mach
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 8

98244473
Mostra profilo
« inserita:: Marzo 19, 2004, 04:20:13 pm »

Ciao a tutti, mi serve una dritta: devo estrarre da un file testo tutte le righe che iniziano con il carattere \"$\"; ho provato con una cosa del genere:

$fg = file($file);
for($i=0;$i    if(eregi(\"^\\$.\",$fg[$i]))
        echo $i;
}


ma il problema è che il carattere \"$\" nelle espressioni regolari di PHP indica \"tutto quello che viene dopo\" e quindi non può essere usata come faccio io perchè mi stampa indistintamente tutte le righe del file...

per ora mi sono arrangiato in un modo ignobile, idee furbe? Linguaccia

tnx
Registrato
kyakan
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 20


Mostra profilo
« Risposta #1 inserita:: Marzo 19, 2004, 07:14:10 pm »

adesso non so bene come funzionano le espressioni regolari in PHP, però lo standard vuole che il $ sia il carattere che identifica il finelinea (senza però considerarlo).
Ora nel caso PHP il problema secondo me non è proprio banale perchè
1. In PHP il $ identifica le variabili
2. Nelle espressioni regolari identifica il fine linea

Nel primo caso credo basti \\$ nel secondo caso ne servono altre due perchè il primo è l\'escape di php e il secondo è l\'escape delle espressioni regolari quindi prova con

\\\\\\$

Un errore è anche dovuto al \'.\' per identificare 0-n caratteri diversi da \'\\n\' devi usare \".*\" (lo standard vuole questo, ma in php non ho mai usato le regexp quindi non so  se usa qualche convenzione strana), il . indica un solo carattere qualsiasi (non identifica ne \"$caoisodi\" ne \"$\", ma solo \"$a\",\"$b\",..)

Codice:

$fg = file($file);
for($i=0;$i  if(eregi(\"^\\\\\\$.*\",$fg[$i]))
          echo $i;
}


Questo dovrebbe funzionare.
Registrato
mach
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 8

98244473
Mostra profilo
« Risposta #2 inserita:: Marzo 19, 2004, 11:14:54 pm »

Citazione
Postato originariamente da kyakan
Questo dovrebbe funzionare.

funziona alla grande!
grazie mille Sorriso
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a: