[RESOLU] preg_split, séparation par un point et récupération du séparateur (PREG_SPLIT_DELIM_CAPTURE)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] preg_split, séparation par un point et récupération du séparateur (PREG_SPLIT_DELIM_CAPTURE)

Re: preg_split, séparation par un point et récupération du séparateur (PREG_SPLIT_DELIM_CAPTURE)

par cedrick21 » 20 juil. 2022, 15:30

merci beaucoup,
j'ai également trouvé en supprimant le "+" à la fin de ma regex

Re: preg_split, séparation par un point et récupération du séparateur (PREG_SPLIT_DELIM_CAPTURE)

par ynx » 20 juil. 2022, 11:37

Bonjour,

Essaye comme ceci :
$phrase = "Ceci est un exemple. Rien de plus simple.";
$output = preg_split("/\b/u", $phrase, 0, PREG_SPLIT_DELIM_CAPTURE);
print_r($output);

preg_split, séparation par un point et récupération du séparateur (PREG_SPLIT_DELIM_CAPTURE)

par cedrick21 » 20 juil. 2022, 10:14

Bonjour à tous,

j'essaye de séparer des phrases par plusieurs éléments (espace, tiret, point, apostrophe, et tout autre signe de ponctuation).
Je souhaite récupérer dans mon array final les mots ainsi que les caractères séparateurs.

Sauf que dans le cas où un point (que je veux récupérer) est suivi d'un espace, il ne me récupère pas le point.
Voici mon exemple :

Code : Tout sélectionner

$phrase = 'Ceci est un exemple. Rien de plus simple.'; $output = preg_split("/([.\s,'-])+/", $phrase, 0, PREG_SPLIT_DELIM_CAPTURE);
Et je récupère ceci :
Array ( [0] => Ceci [1] => [2] => est [3] => [4] => un [5] => [6] => exemple [7] => [8] => Rien [9] => [10] => de [11] => [12] => plus [13] => [14] => simple [15] => . [16] => )
On voit que le point situé après "exemple" n'est pas récupéré.
En revanche je récupère bien le point final de ma variable (après "simple"), ainsi qu'une valeur vide (index 16).

Si vous aviez une petite idée pour bien récupérer ce point, cela m'aiderait beaucoup.
En vous remerciant par avance
Cédric