독일어 문자열과 일치 시키려고합니다.C/C++ PCRE Regex에서 UTF-8 리터럴 문자를 사용하는 방법?
을 ausendschçne.뮌헨 tausendschöne Jungfräulein 우리는 긍정적 예측 및 여러 UTF-8 코드 포인트의 시퀀스를 사용하는 PCRE 정규식과 일치 할 수 있습니다
예 : (?=.+(\x{0068}\x{00F6})){1}
. PCRE 정규식에 그러나
, 우리는 UTF-8 리터럴 중 하나를 추가, ö
, ä
, ç
는 pcre_compile()
약 잘못된 UTF-8 정규식 문자열을 뿌려줍니다. 는 C를 사용하여
/C++ PCRE가 활성화 PCRE_UTF8
, PCRE_UCP
, PCRE_CASELESS
옵션으로 정규식 사용하는 UTF-8 리터럴, ö
, ä
, ç
의 UTF-8 리터럴을 사용하는 유효한 PCRE 정규식 수 있습니다 무엇 ö
또는 ä
또는 ç
?
가장 큰 문제는 문자열이 독일어가 아닐뿐 아니라 독일어도 보지 않는다는 것입니다. "Munich"는 "München", "tausend"및 "schöne"은 아마 두 단어로되어 있고, 동사가 없으며, 약 17 세 이후로 아무도 "Jungfräulein"이라는 단어를 사용하지 않았습니다 (이는 단조롭지 만 tausend와 반대입니다. 정확함), 나는 "ausendschçne"과 비슷한 단어조차도 본 적이 없다. C-cedil은 독일어로 사용되지 않으며, 일치하지 않습니다. Bevore가 샘플 용 파서를 작성하려고하면 일치하는 샘플이 있어야합니다. – Damon
parcebal, 질문을 편집 해 주셔서 감사합니다. – Frank
데이먼, 너는 좋은 지적을했다. 나는 합법적 인 독일어 구의 샘플을 찾으려고 노력할 것이다. 그러나 Giuseppe D' Angelo가 아래 답변에서 지적했듯이 컴파일러의 실행 문자셋은 UTF-8 시퀀스를 올바르게 출력하도록 설정되지 않았습니다. 고맙습니다. – Frank