2011-03-21 4 views
3

나는 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를 사용하여 유효한 문자 속성을 지정하려면 어떻게해야합니까?

+0

가 " 문자열 인코딩과 같은 값 을 찾으려고"것이라고

/\p{Mark} 
내가 늙은 루비 블로그에 읽고 있던

사용해보십시오 소스 파일이 UTF-8로 인코딩 되었습니까? –

+0

@Tim : 그렇습니다. – Simon

답변

관련 문제