Question

Je développe simple traducteur de MathML au latex, en utilisant Lex et Yacc. Dans mon dossier contenant les règles lex regex j'ai celui défini pour les opérateurs arithmétiques [- + * = /]. Je veux étendu afin qu'il reconnaîtrait plus-moins (+ -) et les temps invisibles ( « & InvisibleTimes »), mais je ne suis pas familier avec regex et je besoin d'aide

.
Était-ce utile?

La solution

Essayez ceci:

([-+*=/]|\+-|&InvisibleTimes)

Notez que vous devez échapper à la + dans +- parce qu'il est un opérateur extérieur des classes de caractères. Vous pouvez le faire avec Doseret (comme je l'ai fait ici) ou avec des guillemets doubles. (La syntaxe guillemet est assez inhabituel -. La plupart des autres implémentations regex utilisent uniquement antislash pour échapper, donc je serais enclin à la barre oblique inverse car il rend le regex plus « classique »)

Autres conseils

Would quelque chose comme ce travail?

(?:[-+*=/]|\+-|&InvisibleTimes)

Je ne suis pas très familier avec MathML, donc je le problème en face de vous. Comme d'autres l'ont dit, vous pouvez faire tout cela dans un regex, comme ceci:

[-+*=/]|\+-|&InvisibleTimes

Cependant, si vous voulez avoir des actions associées à chacun de ceux-ci, vous devez le faire comme ceci:

[-+*=/]            {/* action 1 here */}
\+-                {/* action 2 here */}
&InvisibleTimes    {/* action 3 here */}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top