나는 ruby 1.8에서 유니 코드 인식 정규 표현식을 얻기 위해 oniguruma gem을 사용하고 있습니다. 구문 설명서에 따르면 \p{M}
또는 \p{Mark}
을 사용하여 코드 포인트를 Mark 속성과 일치시킬 수 있어야합니다. 내가 할 때Oniguruma regexes를 사용하여 유효한 문자 속성을 어떻게 지정합니까?
그러나, 나는 ArgumentError: Oniguruma Error: invalid character property name {M}
을 얻을
ORegexp.new '\p{M}',
:options => OPTION_MULTILINE | OPTION_SINGLELINE | OPTION_IGNORECASE | OPTION_EXTEND,
:syntax => SYNTAX_JAVA, # so we can use character properties
:encoding => ENCODING_UTF8
다음. 내가
{Mark}
을 사용하거나,
\p
을 지원하는 다른 구문 중 하나를 사용하면 같은 오류가 발생합니다.
내가 뭘 잘못하고 있니? 어떻게 Oniguruma regexes를 사용하여 유효한 문자 속성을 지정합니까?
업데이트 - UTF16 인코딩 중 하나를 사용하는 경우 정규식이 컴파일됩니다. 하지만 내 문자열은 도움이되지 않는 UTF8에 있기 때문에. 그래서 내 질문은 어떻게됩니까 : UTF-8 Oniguruma regexes를 사용하여 유효한 문자 속성을 지정하려면 어떻게해야합니까?
가 " 문자열 인코딩과 같은 값 을 찾으려고"것이라고
내가 늙은 루비 블로그에 읽고 있던사용해보십시오 소스 파일이 UTF-8로 인코딩 되었습니까? –
@Tim : 그렇습니다. – Simon