| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  24-02-2007, 15:44 | #1 | 
| Member Iscritto dal: Dec 2004 
					Messaggi: 88
				 | 
				
				[PHP]Espressione regolare
			 
		Ciao ragazzi. Ho bisogno di un'espressione regolare che data ad esempio la stringa 123blabla mi restituisca solo blabla, cioè elimini le prime cifre finkè sono numeri. Ho provato in questo modo ma mi fa la cosa inversa, cioè mi restituisce solo i numeri. Codice PHP: 
			
				__________________ "Voi che li avete girati nei giradischi e gridati voi che li avete aspettati ascoltati bruciati e poi scordati..chi erano mai questi Beatles MA CHI ERANO MAI QUESTI BEATLES" | 
|   |   | 
|  24-02-2007, 20:23 | #2 | 
| Junior Member Iscritto dal: Aug 2006 
					Messaggi: 2
				 | 
		Ciao, il primo campo della funzione "preg_match" consiste nel pattern. Nel tuo caso con "/^[0-9]*/", la funzione ti ritornerà in $match[0] solo i numeri contenuti nella stringa passata come input. A questo punto basta che elimini i numeri trovati all'inizio della stringa, ad esempio utilizzando la funzione "substr". Ecco il codice: Codice: <?php
$stringa = "123blabla";
preg_match("/^[0-9]*/", $stringa, $match);
$stringa = substr($stringa, strlen($match[0]));
echo $stringa;
?> , Ciao! | 
|   |   | 
|  24-02-2007, 20:32 | #3 | |
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
 Codice: preg_match("/^[0-9]*(\\w+)/",$stringa,$match);Codice: array(2) {
  [0]=>
  string(9) "123blabla"
  [1]=>
  string(6) "blabla"
}EDIT: Se invece di usare \w (che prende un "word" character) vuoi prendere qualunque cosa, puoi mettere (.+) 
				__________________ Andrea, SCJP 5 (91%) - SCWCD 5 (94%) Ultima modifica di andbin : 24-02-2007 alle 21:18. | |
|   |   | 
|  25-02-2007, 17:28 | #4 | |
| Member Iscritto dal: Dec 2004 
					Messaggi: 88
				 | Quote: 
   perchè non mi trovo? Codice PHP: 
			
				__________________ "Voi che li avete girati nei giradischi e gridati voi che li avete aspettati ascoltati bruciati e poi scordati..chi erano mai questi Beatles MA CHI ERANO MAI QUESTI BEATLES" | |
|   |   | 
|  25-02-2007, 17:53 | #5 | 
| Member Iscritto dal: Dec 2004 
					Messaggi: 88
				 | 
		scusa la stupiddaggine, errore mio. mi trovo perfettamente. ultima cosa, se la stringa è un'intera riga? cioè es: "123blabla oppure bloblo" l'espressione regolare dovrebbe fare lo stesso restituire "blabla oppure bloblo" ma per ora mi restituisce solo blabla grazie ancora sciao 
				__________________ "Voi che li avete girati nei giradischi e gridati voi che li avete aspettati ascoltati bruciati e poi scordati..chi erano mai questi Beatles MA CHI ERANO MAI QUESTI BEATLES" | 
|   |   | 
|  26-02-2007, 09:22 | #6 | 
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | 
		
L'ho spiegato sopra: \w indica un "word character", quindi è normale che interrompa il match appena trova uno spazio. Usa (.+) invece di (\\w+)
		 
				__________________ Andrea, SCJP 5 (91%) - SCWCD 5 (94%) | 
|   |   | 
|  27-02-2007, 15:25 | #7 | 
| Senior Member Iscritto dal: Dec 2005 
					Messaggi: 611
				 | 
		Visto che ci siamo sapete dirmi un ottimo sito dove trovare le istruzioni per le regular expression? E' anni che ne cerco una decente,ma non ne trovo mai.!
		 | 
|   |   | 
|  27-02-2007, 15:44 | #8 | |
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
 Ci sono certamente delle basi comuni (es. le classi di caratteri o i quantificatori ? + *) ma molto spesso ogni linguaggio di programmazione ha il suo "set" di costrutti che magari contiene dei costrutti particolari o differisce da altri linguaggi per delle sottigliezze. Comunque si può partire da qui: http://en.wikipedia.org/wiki/Regular_expression 
				__________________ Andrea, SCJP 5 (91%) - SCWCD 5 (94%) | |
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 08:24.









 
		 
		 
		 
		








 
  
 



 
                        
                        










