문자 일치하는 패턴의 위치를 Ragel에서 얻는 것이 가능합니까?UTF-8 일치 위치
문자열 (char *
)에 대한 포인터, 즉 패턴이 문자열 내부에서 발견 된 바이트 오프셋을 받는다는 것을 알고 있습니다. 문제는 UTF-8이 가변 길이 인코딩이므로 문자와 바이트를 정렬 할 필요가 없다는 것입니다. 내가 €€$
에 $
를 검색하기를 원한다면
예를 들어, 나는 2를 얻을 대신 6 싶습니다 ($
값 0x24, 0xE282AC → €
→).
내가 이해할 수없는 것이 하나 있습니다. 위의 내 질문은 암시 적 가정으로 쓰여졌 기 때문에 (미안 해요!) 내가 관심있는 패턴과 일치하는 머신을 이미 가지고 있습니다. UTF-8과 유사한 머신과 머신을 어떻게 결합해야합니까? "unicode2ragel.rb"는 무엇을합니까? 내 컴퓨터 규칙과 UTF-8 규칙 각각에서 코드 포인트를 모두 계산해야합니까? –
'unicode2ragel.rb'로 일한 적이 없기 때문에, 누군가 다른 사람이 대답하기 위해 stackoverflow에 관한보다 구체적인 새로운 질문을 만들어야 할 것입니다. 'unicode2ragel.rb' 머신을 기존의 머신에 통합하는 방법과 코드 포인트를 세는 방법을 사용하는 방법에 대한 예제가 있습니다. – ArtemGr