2009-08-07 7 views
0

peuvent être duplicateREGEX: intervalles entre virgules separé

J'utilise PHP et Postgres.

Comment puis-je séparer les mots dans le formulaire ci-dessous? La quantité maximale de mots est 7.

word_1, word_2, word_3, ... 
+0

Dupe? http://stackoverflow.com/questions/470505/regular-expression-for-parsing-csv-in-php –

+0

@Mark: La situation est différente, car je dois d'abord convertir les données en "word_1", "word_2" "," word_3 ", ...' à partir de 'word_1, word_2, word_3' de sorte que les espaces sont supprimés entre les mots. avant la conversion. –

+0

Merci pour vos réponses! –

Répondre

4

Vous pouvez appeler exploser.

$string = 'word_1, word_2, ...'; 
$splitarr = explode(',' $string); 

Ensuite, vous pouvez saisir les valeurs de l'arr comme ceci: splitarr de $ [0] ... $ splitarr [6].

Diviser dans ce cas est légèrement plus lent qu'exploser, car la division prend une expression régulière. http://blog.brianhartsock.com/2007/06/11/php-explode-vs-split/

1

si les mots ne peuvent contenir d'espace vous pouvez utiliser la fonction preg_split:

$string="word_1, word_2, word_3"; 
$array=preg_split("/\s*,\s/",$string, PREG_SPLIT_NO_EMPTY); 

si vous utilisez la constante PREG_SPLIT_NO_EMPTY vous ne pourrez pas obtenir des résultats vides

+0

Pourriez-vous donner un exemple d'utilisation de votre code? Je cours sans succès 'echo array [0]', car il imprime tous les mots séparés par une virgule. Je voudrais imprimer seulement le mot «word_1». –

Questions connexes