Come posso esplodere una stringa con uno o più spazi o tabulazioni?Esplodi stringa da uno o più spazi o tabulazioni
Esempio:
A B C D
Voglio rendere questo un array.
Come posso esplodere una stringa con uno o più spazi o tabulazioni?Esplodi stringa da uno o più spazi o tabulazioni
Esempio:
A B C D
Voglio rendere questo un array.
$parts = preg_split('/\s+/', $str);
$ parts last element sarà vuoto .. quindi per rimuoverlo array_pop ($ parts); – user889030
La risposta di @lucsan deve essere la risposta migliore (https: // stackoverflow.it/a/38481324/1407491) –
invece di utilizzare esplodere, provare preg_split: http://www.php.net/manual/en/function.preg-split.php
Questo funziona:
$string = 'A B C D';
$arr = preg_split('/[\s]+/', $string);
Penso che si desidera preg_split
:
$input = "A B C D";
$words = preg_split('/\s+/', $input);
var_dump($words);
@OP non importa , puoi semplicemente dividere uno spazio con l'esplosione. Fino a quando non si desidera utilizzare tali valori, scorrere i valori esplosi e eliminare gli spazi vuoti.
$str = "A B C D";
$s = explode(" ",$str);
foreach ($s as $a=>$b){
if (trim($b)) {
print "using $b\n";
}
}
E i valori delimitati da tabulazione? – dotancohen
I valori delimitati da tabulazione non verranno esplosi, quindi ugh. – NekojiruSou
Per separare da tabulazioni:
$comp = preg_split("/[\t]/", $var);
Per separare da spazi/schede/ritorni a capo:
$comp = preg_split('/\s+/', $var);
per separare da spazi sola:
$comp = preg_split('/ +/', $var);
In Per tener conto spazio intera larghezza come
full width
è possibile estendere Bens risposta a questa:
$searchValues = preg_split("@[\s+ ]@u", $searchString);
Fonti:
(non ho abbastanza reputazione per pubblicare un commento, quindi sto scritto questo come una risposta.)
L'autore ha chiesto per esplodere, per è possibile utilizzare esplodere come questo
$resultArray = explode("\t", $inputString);
Nota: è necessario utilizzare virgolette doppie, non singole.
Ha funzionato per me ed è un po 'più semplice dell'uso del potere oscuro delle espressioni regolari. – ddtpoison777
Explode string by one or more spaces or tabs in php example as follow:
<?php
$str = "test1 test2 test3 test4";
$result = preg_split('/[\s]+/', $str);
var_dump($result);
?>
/** To seperate by spaces alone: **/
<?php
$string = "p q r s t";
$res = preg_split('/ +/', $string);
var_dump($res);
?>
zero o più spazi implica che o ogni elemento avrà al massimo un carattere, o che avrete infiniti elementi vuoti. Sei sicuro che questo è quello che vuoi? – bdonlan
Sì, probabilmente dovrebbe essere "uno o più spazi". –