Bonjour, j'essaie de faire étape par étape pour faire réapparaitre le signe * d'une expression.
l'expression littérale est assez basique : que des entiers relatifs, pas de notations scientifique
pas de vérification syntaxique du langage, les variables sont a,b,c,...,z et 𝝅 (mais pas ab), on écrit 2a mais pas a2.En gros les maths de niveau de 3ième/2nd
Je veux transformer une écriture littérale du genre :
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part str='(a+b)²-12abc+13(a+ba+(c+d)²)-c²b(u+v)+41𝝅²+10²+(a+b)(c+d)';
(faire apparaitre le signe multiplier, c'est un exemple où j'ai tout mis)
Code : Sélectionner tout - Visualiser dans une fenêtre à part resultat='(a+b)**2-12*a*b*c+13*(a+b*a+(c+d)**2)-c**2*b*(u+v)+41*𝝅**2+10**2+(a+b)*(c+d)';
Je débute dans l'expression régulière, j'ai lu le cours proposé sur ce site https://javascript.developpez.com/tu.../cours-regexp/
Je fais deux passages pour 12abc, avez vous par hasard mieux ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 const str='(a+b)²-12abc+13(a+ba+(c+d)²)-c²b(u+v)+41𝝅²+10²+(a+b)(c+d)'; match1=/([0-9]+|𝝅)([a-z𝝅(]+)/g result=str.replaceAll("²","**2"); result=result.replace(match1,"$1*$2"); match2=/([a-z\)]{1})([a-z𝝅\(]{1})/g result=result.replace(match2,"$1*$2"); result=result.replace(match2,"$1*$2"); console.log(result);
Merci d'avance pour vos éclairages.
Partager