Je suis novice dans l'utilisation de l'expression régulière et j'ai de la difficulté à analyser une chaîne. Je travaille sur l'analyse d'une formule donnée sous la forme d'une chaîne en utilisant une expression régulière.C# Scinder la représentation sous forme de chaîne d'une formule
Actuellement, mon expression régulière est:
string[] formula_substrings = Regex.Split(formula, "(\\()|(\\))|(-)|(\\+)|(\\*)|(/)|(\\s+)")
L'un des cas de test que cette expression régulière ne parvient pas à gérer est lorsque la formule a des exposants.
Exemple:
Formula = "1e-2 + 5.0"
Ma sortie désirée est
["1e-2", "+", "5.0"]
mais je reçois
["1e", "-", "2", "+", "5.0"].
J'ai essayé de changer l'expression régulière pour vous assurer que le caractère devant la signe moins ins't an e:
string[] formula_substrings = Regex.Split(formula, "(\\()|(\\))|((^e)-)|(\\+)|(\\*)|(/)|(\\s+)")
Et cela cause des problèmes lorsque l'expression est
Formula = "5+5-2"
Il donnera la sortie:
["5", "+", "5-2"]
Quand ma sortie désirée est
["5", "+", "5", "-", "2"]
Merci à l'avance pour l'aide!
vous aussi sur gourmand (*) et non gourmand (*?) –