Mon code source Java :
String result = "B123".replaceAll("B*","e");
System.out.println(result);
La sortie est : ee1e2e3e
. Pourquoi ?
Mon code source Java :
String result = "B123".replaceAll("B*","e");
System.out.println(result);
La sortie est : ee1e2e3e
. Pourquoi ?
J'ai passé plus d'un mois à travailler dans une grande entreprise de technologie à corriger un bogue avec * (splat !) dans les expressions régulières. Nous maintenions un système d'exploitation UNIX peu connu. Ma tête a failli exploser parce que cela correspondait à ZERO occurrences d'une rencontre avec un personnage. Vous parlez d'un bug difficile à comprendre par vos propres recréations. Nous faisions des doubles substitutions dans certains cas. Je n'ai pas pu comprendre pourquoi le code était erroné, mais j'ai pu ajouter du code qui capturait le cas spécial (erroné) et empêchait la double substitution et ne cassait aucun des utilitaires qui l'incluaient (y compris sed et awk). J'étais fier d'avoir corrigé ce bogue, mais comme déjà mentionné.
Pour l'amour de Dieu, utilisez simplement + ! !!!
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.