문제

Lex와 YACC를 사용하여 MathML에서 Latex까지 간단한 번역기를 개발하고 있습니다. REGEX 규칙이 포함 된 LEX 파일에는 산술 연산자에 대해 정의 된 규칙이 있습니다 [-+*=/]. 플러스-미니 (+-)와 보이지 않는 시간 ( '& invisibletimes')을 인식하도록 확장하고 싶지만 Regex에 익숙하지 않으며 도움이 필요합니다.

도움이 되었습니까?

해결책

이 시도:

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

탈출해야합니다 + 안에 +- 캐릭터 클래스 외부의 운영자이기 때문입니다. Backslash (내가 한 것처럼) 또는 이중 인용문 으로이 작업을 수행 할 수 있습니다. (이중 쿼트 구문은 매우 드문 일입니다. 대부분의 다른 REGEX 구현은 탈출을 위해 백 슬래시 만 사용하므로 반 슬래시를 사용하는 경향이 있습니다.)

다른 팁

이런 일이 작동할까요?

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

나는 MathML에 익숙하지 않으므로 반대의 문제가 있습니다. 다른 사람들이 말했듯이, 당신은 다음과 같이 한 번의 regex 로이 모든 것을 할 수 있습니다.

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

그러나 각각과 관련된 다른 조치를 원한다면 다음과 같이해야합니다.

[-+*=/]            {/* action 1 here */}
\+-                {/* action 2 here */}
&InvisibleTimes    {/* action 3 here */}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top