Boulzi Posté 25 Mars 2021 Partager Posté 25 Mars 2021 Bonjour, je cherche à diviser un texte en groupes de mots avec Regex. Les groupes de mots doivent faire entre 22 et 30 mots max. Le nombre de mots à choisir entre 22 et 30 doit être aléatoire pour chaque groupe de mots. Voici un exemple que j'ai fais manuellement : Texte original: Depuis que je mange des sushis, j'adore la vodka. Certes, cette phrase n'a vraiment aucun sens mais c'est pour montrer un peu l'orthographe à la française avec des accents et des caractères un peu bizarres. J'essaie également de mettre des apostrophes ainsi que montrer un nombre qui a des pourcentages comme 55% ou encore des prix comme 67€ ou bien 85$. Sans oublier bien sûr un smiley étrange :) ou encore ^^. Bien sûr, il est toujours possible d'avoir un ; ou encore une parenthèse comme : (voici une parenthèse). Citation Output1 (23 mots): Depuis que je mange des sushis, j'adore la vodka. Certes, cette phrase n'a vraiment aucun sens mais c'est pour montrer un peu l'orthographe Citation Output2 (27 mots): à la française avec des accents et des caractères un peu bizarres. J'essaie également de mettre des apostrophes ainsi que montrer un nombre qui a des pourcentages Citation Output3 (32 mots): comme 55% ou encore des prix comme 67€ ou bien 85$. Sans oublier bien sûr un smiley étrange :) ou encore ^^. Bien sûr, il est toujours possible d'avoir un ; ou encore une Citation Output4 (5 mots): parenthèse comme : (voici une parenthèse). Est-ce que quelqu'un connaitrait un code regex qui permette de diviser ce type de textes en plusieurs groupes comme dans mon exemple SVP ? :) Merci beaucoup pour votre aide =) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 2 Avril 2021 Partager Posté 2 Avril 2021 Bonjour, j'ai joué un peu, et ai trouvé ceci : <?php $MIN=20; $MAX=30; $exemple="Depuis que je mange des sushis, j'adore la vodka. Certes, cette phrase n'a vraiment aucun sens mais c'est pour montrer un peu l'orthographe à la française avec des accents et des caractères un peu bizarres. J'essaie également de mettre des apostrophes ainsi que montrer un nombre qui a des pourcentages comme 55% ou encore des prix comme 67€ ou bien 85$. Sans oublier bien sûr un smiley étrange :) ou encore ^^. Bien sûr, il est toujours possible d'avoir un ; ou encore une parenthèse comme : (voici une parenthèse)."; $mots = preg_split("/[\s,.]+/", $exemple); $nombre=random_int($MIN, $MAX); $taille = count($mots); for($start=0; $start < $taille ; $start+=$nombre) { $phrase=array_slice($mots,$start,$nombre) ; print(implode(" ",$phrase)); print "\n\n"; } ?> En l'exécutant, j'ai bien des phrases, scindées aléatoirement par tranche de 20 à 30 mots. ns.le-hub.net:dan# php ./test.php Depuis que je mange des sushis j'adore la vodka Certes cette phrase n'a vraiment aucun sens mais c'est pour montrer un peu l'orthographe à la française avec des accents et des caractères un peu bizarres J'essaie également de mettre des apostrophes ainsi que montrer un nombre qui a des pourcentages comme 55% ou encore des prix comme 67€ ou bien 85$ Sans oublier bien sûr un smiley étrange :) ou encore ^^ Bien sûr il est toujours possible d'avoir un ; ou encore une parenthèse comme : (voici une parenthèse) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant