Le 01/02/2017 09:11, Une Bévue m'a répondu :
>
>> Il faudrait voir si tu utilises des regexp exotiques, mais par exemple
>> dans PCRE cela inclut uniquement les caractères HT (9), LF (10), VT
>> (11), FF (12) et space (32). C'est donc tout à fait normal.
>>
>> [...]
>
> Bon, merci beaucoup pour cette claire explication.
> C'est donc normal, mais particulièrement génant.
Peut-être pour toi, mais l'inverse serait encore plus gênant pour
tous ceux qui ont codé des regexp pour l'ASCII ou le Latin1, et
qui par hasard se retrouveraient avec une chaîne en UTF-8. Cela
pourrait même être une source potentielle de grosse faille de
sécurité.
> Je n'utilise pas de regex "exotiques", il y a que je souhaite supprimer,
> dans certains cas, des espaces et que les "non breaking spaces" sont
> récalcitrants.
Sans vouloir te faire peur outre mesure, le fait que tu utilises
un \s sans savoir *exactement* quels caractères cela recouvre me
fait penser que peut-être tu pourrais avoir de telles failles de
sécurité dans ton code. Bien sûr cela ne concerne pas que \s et \S
mais aussi \w et \W, \d et \D, \b et \B... j'en oublie peut-être.
Donc, à moins de savoir exactement ce que tel raccourci recouvre
et d'être d'accord avec ça, il pourrait être plus sage d'utiliser
des regexp plus basiques, par exemple [ \t\n] au lieu de \s, ou la
même chose en y ajoutant l'espace insécable.
> Bien sûr j'ai trouvé la parade.
Ok. Tous ceux qui étaient intéressés par ton problème sont ravis
que tu l'aies trouvée (quoique peut-être un peu déçus que tu la
gardes secrète). ;-)
--
Olivier Miakinen