J’ai un problème avec regex C ++, et j’espère que quelqu’un pourrait offrir de l’aide. 🙂
Actuellement, sur la base de “rxAssign” comme indiqué ci-dessous, je suis capable de détecter une expression mathématique ressemblant à:
Cependant, j’ai besoin de quelques modifications pour pouvoir accepter le crochet rond ouvert “(” et le crochet rond étroit “)” pour une expression mathématique telle que:
Est-il possible de modifier mon implémentation actuelle pour accepter les crochets ouverts / fermés? Il pourrait encore y avoir une expression sans parenthèse arrondie. J’ai rxOpen et rxClose, qui représentent aussi bien les crochets ronds ouverts que fermés, mais je ne sais pas comment les insérer
rxAssign = regex("^\\s*(" + rxstrIdentifier + ")\\s*=\\s*((" + rxstrRef + ")((\\s*([\-+*])\\s*(" + rxstrRef + "))*))\\s*[;]\\s*([} ])*\\s*$");
où
ssortingng rxstrIdentifier = "\\b[a-zA-Z]\\w*\\b"; ssortingng rxstrConstant = "\\b\\d+\\b"; ssortingng rxstrRef = "(?:" + rxstrIdentifier + ")|(?:" + rxstrConstant + ")"; // identifier or constant ssortingng rxOpen = "[(]"; ssortingng rxClose = "[)]";