Boulzi Posté 25 Mars 2021 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 =)
Dan Posté 2 Avril 2021 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)
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant