Expression régulière pour rechercher du texte entre les virgules

Je vais noix essayant d'obtenir une expression régulière pour détecter le spam de mots-clés dans les entrées de l'utilisateur. Habituellement, il ya peu de texte normal au début et le mot-clé le spam à la fin, séparés par des virgules ou autres caractères.

Ce dont j'ai besoin est une expression régulière pour compter le nombre de mots-clés pour marquer le texte pour un homme de le vérifier.

Le texte est généralement comme ceci:

[random text, with commas, dots and all]

keyword1, keyword2, keyword3, keyword4, keyword5,
Keyword6, keyword7, keyword8...

J'ai essayé plusieurs regex pour compter les matches:

-Ce n'obtient que l'un des deux mots clés

[,-](\w|\s)+[,-]

-Ce qui correspond également au texte aléatoire

(?:([^,-]*)(?:[^,-]|$))

Quelqu'un peut me dire une regex pour ce faire? Ou je devrais prendre une approche différente?

Merci!

Ce sujet d'exploser ou de preg_split?
Est une autre façon de formuler votre question "Comment puis-je compter le nombre de comas il y a sur la dernière ligne de texte?" ?
Modifié la question pour la rendre plus claire l'exemple
Le problème n'est pas l'expression rationnelle. Le problème, c'est que vous n'avez pas formulé d'une façon dont la chaîne de mots-clés sont différents à partir du corps du texte. Jusqu'à ce que vous avez lu, vous ne serez pas en mesure de former un véritable regexp. Donc, avec cela à l'esprit, s'il y a des espaces dans les mots clés? C'est à dire peut "Expression Régulière" être un mot-clé?
La différence est que les mots clés sont toujours ENTRE les virgules, des points ou des séparateurs comme cela, ce serait de me donner des faux positifs dans le texte aléatoire, mais pas trop.

OriginalL'auteur SkarXa | 2013-10-22