Newsgroup: it.comp.www.php
Titolo: regular expression su stringa

Ciao, dovrei fare un sistema che accetta una stringa in ingresso del tipo:
$stringa = 'pippo "pippo1 pippa" "cat vim" pippu';
dove ogni parola che non è tra " diventa una variabile a sé
e ogni gruppo di parole chiuso tra la coppia di " faccia una variabile.
quindi nel caso dovrebbe diventare:
$arr[] = "pippo";
$arr[] = "pippo";
$arr[] = "pippo";
$arr[] = "pippo";
$arr[] = "pippo";
-- 
Some day,
and that day may never come,
I'll call upon you to do a service for me.

Ciao, dovrei fare un qualcosa che accetti una stringa in ingresso del tipo:
$stringa = 'pippo "pippo1 pippa" "cat vim" pippu';
dove ogni parola che non č tra " diventa una variabile a sé
e ogni gruppo di parole (2 o piů) chiuso tra la coppia di " faccia una
variabile.
quindi nel caso dovrebbe diventare:
$arr[] = "pippo";
$arr[] = "pippo1 pippa";
$arr[] = "cat vim";
$arr[] = "pippu";
e cosě via...
gracias :)


 e cosě via...
Quale sarebbe la domanda?
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

 
ah ciao, mi spiego meglio, cosě il tuo parser personale nel cervello puň 
completare la richiesta e forse restituire la soluzione :P
Da un form html mi arriva una stringa del tipo:
$stringa = $_POST['chesoio'];
$stringa = 'a "a b" "c d" e f g';
io ho bisogno di aver restituito un array con questa esatta sequenza:
$arr[] = "a";
$arr[] = "a b";
$arr[] = "c d";
$arr[] = "e";
$arr[] = "f";
$arr[] = "g";
come vedi il gruppo "a b" e il gruppo "c d" sono racchiusi dentro delle 
virgolette.
mi chiedevo se con una regular expression fosse possibile smontare la 
stringa per poi rimontarla sotto forma di array.
grazie

 grazie
qualcosa simile a..
preg_match_all('/([a-zA-Z0-9]+)|"([a-zA-Z0-9 ]+)"/i', $string, $matches);
print_r($matches);
$matches[0] // corrispondenze complete..
$matches[1] // corrispondenze delle fuori dagli apici..
$matches[2] // corrispondenze delle all'interno degli apici..
-- 
www.iuz-lab.info

 stringa per poi rimontarla sotto forma di array.
<pre>
<?php 
$stringa = 'a "a b" "c d" e f g';
function remove_empty ($var) {
	return (trim ($var) !== ''); 
}
$tokens = explode ('"', $stringa);
$count = count ($tokens);
$output = array ();
for ($i = 0; $i < $count; $i++) {
	if ($i % 2 == 0) {
		$subtokens = explode (' ', $tokens[$i]);
		foreach ($subtokens as $subtoken) {
			$output[] = $subtoken;
		}
	} else {
		$output[] = $tokens[$i];
	}
}
$output = array_filter ($output, "remove_empty");
print_r ($output);
?>
</pre>
-- 
I am what I am, I do what I can


ti ringrazio, adesso cerco di capire perché mi da parse error e poi ti dico
come funziona.
ciao 

 
elegantissima soluzione, ti ringrazio molto :)

sathia musso wrote:

ho risolto, s'era portato da knode dei caratteri invisibili su kate e dava
dei parse error.
anche la tua funzione è ok, ti ringrazio molto e ora le studio entrambe!
ciao

 anche la tua funzione è ok, ti ringrazio molto e ora le studio entrambe!
[..]
-- 
www.iuz-lab.info


^^^^^^^^^^^
cosa vuol dire questo dove dovrei farlo?
grazie 

sathia musso wrote:

da kate.. in caso il codice copiato sia lungo..
Ctrl-R
spunti la casella per le espressioni regolari
e digiti come testo da ricercare '\s' 
e come testo da sostituire ' '
-- 
www.iuz-lab.info

 
Ah... ok!
Sat_
