문제
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 */}
제휴하지 않습니다 StackOverflow