lex (flex 2.5.35)에서 긍정적 인 lookbehind 어설 션이 필요합니다. 문서를 조사한 후에는이를 직접 수행 할 방법이 없습니다. lookahead 어서션 (r/s 구문)과 유사하지만 lookbehind가 아닙니다. 동일한 효과를 얻는 가장 좋은 방법은 무엇입니까? 여기 lookbehind 어설 션을 lex에서 어떻게 사용할 수 있습니까?
은 예입니다 : 내 스캐너 사양 파일의 folling 규칙이 말 : 나는 'B'다음에 'D'를 일치합니다 어떻게a printf("matched a ");
b printf("matched b ");
c printf("matched c ");
d printf("matched d ");
을하고, 그 때문에 'B'그 자체, 'ABD'의 입력에 내가 얻을 것 :
matched a matched b matched d following b
을하지만 문자열 'ACD'에 대한
matched a matched c matched d
규칙 :
bd printf("matched d following b ");
분명히 작동하지 않습니다. 내가 PCRE lookbehinds이 있다면
matched a matched d following b
내가 쓸 수 :
(?<=b)d printf("matched d following b ");
을 모두 잘 될 것이다,하지만 렉스는이 기능을 지원하지 않습니다 'ABD'것이 출력합니다. 긍정적 인
(?<! ...)
부정적인
그리고 PCRE에 대한
(?<= ...)
이 (양 또는 음) 고정 길이 보이는 비하인드 필요합니다
흠. 이것은 꽤 복잡해 보이지만 다른 방법은 없다고 생각한다. 도와 주셔서 감사합니다. . – justinrstout