PHP expression régulière correspondant aux mots
OK, j'ai donc été à la lutte avec cette regex pour les âges et je peux pas le faire fonctionner.
Ce que je veux faire:
Donné une chaîne, je veux un tableau de chaînes contenant les paroles, chacune précédée par des non-caractères de mot.
Exemple la chaîne d'entrée:
one "two" (three) -four-
Les mots de la chaîne peut être n'importe quoi, même charabia, avec n'importe quelle quantité de signes de ponctuation ou des symboles.
Ce que je voudrais voir:
tableau: un "deux "(trois ) -quatre -
Essentiellement, pour chaque match de la dernière chose, c'est un mot, précédé par quoi que ce soit à gauche du précédent match.
Comme indiqué dans cette les questions de titre que je vais utiliser cela en PHP, j'ai essayé différentes combinaisons de preg_match_all() et preg_split(), avec les modèles contenant de nombreuses variantes de "\w", "\b", "[^\w]" et ainsi de suite.
L'Image Plus Grande
En fait, j'ai simplement envie de passer une * après chaque mot de la chaîne pour leurs recherches.
Je ne suis vraiment pas une regex de la personne, l'aide est très appréciée!
four
censé être sur la ligne suivante?Vous avez raison, les guillemets semblent avoir été changé quand j'ai posté, j'ai réparé maintenant, j'espère qu'ils ont obtenu par correctement cette fois.
OriginalL'auteur Testic | 2013-02-18
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez simplement ajouter un astérisque après chaque "mot" que vous pourriez faire ceci:
http://phpfiddle.org/main/code/8nr-bpb
OriginalL'auteur LeonardChallis
Vous pouvez utiliser une anticipation négatif à split, sur les limites de mot, comme ceci:
Un
print_r( $array);
vous donne la sortie exacte souhaitée:OriginalL'auteur nickb
ici un exemple de la façon de trouver un mot avec la regex en PHP.
OriginalL'auteur 0_0
Une alternative
Vous avez besoin pour correspondre à!
OriginalL'auteur Anirudha