2011-05-14 2 views
7

PDF에서 OCR로 HTML로 변환 된 일부 문서가 있습니다. 이 때문에 컨버터가 엉망인 곳에서 무작위로 많은 유니 코드 구두점을 사용합니다 (예 : 도랑 등). 그들은 또한 정확하게 비영어권을 가지고 있지만 é와 러시아어 등의 알파벳 문자는 여전히 있습니다 ...유니 코드 비 알파벳 문자와 일치시키는 방법이 있습니까?

유니 코드 알파벳 문자와 일치하는 정규 표현식을 만드는 방법은 무엇입니까? 모든 언어)? 또는 영문자가 아닌 문자와 일치하는 문자입니까? 어느 쪽이든 정말 도움이 될 것입니다. 그게 바뀌면 Perl을 사용하고 있습니다. 감사!

답변

19

유니 코드 문자 속성 : http://www.regular-expressions.info/unicode.html#prop을 확인하십시오. 내 생각에 당신이 찾고있는 것은 아마도

이며 어떤 문자 나 표의 문자와도 일치합니다. 또한 그들에 표시가있는 문자를 포함 할 수 있습니다, 그래서 당신은 어떤 경우

\p{L}\p{M}* 

을 할 수있는, 문자 속성의 모든 다른 종류의 첫 번째 링크에 자세히 설명되어 있습니다.

편집 :이 스택 오버플로 (Stack Overflow) 응답에서 \ w가 유니 코드 문자와 일치하는지 여부를 살펴볼 수도 있습니다. 그들은 당신은 또한 \ P는 {말씀} 또는 \ P는 {Alnum} 사용할 수 있습니다 제안 : 당신이 사용중인 언어에 따라 Does \w match all alphanumeric characters defined in the Unicode standard?

+2

마찬가지로 '\ P'를 사용하여 특정 속성이없는 * 문자 *와 일치시킬 수 있습니다 ('\ P {L} '은 문자가 아닌 문자와 일치합니다). –

+0

일부 코드 포인트를 생략 한 문자 코드를 사용할 수 있습니까? \ p {P}와 마침표와 쉼표를 생략 하시겠습니까? 그 부정은 나를 위해 완벽 할 것입니다. – Eli

2

을, 정규 표현식 엔진 또는 유니 코드가 인식되지 않을 수도 있습니다. 그렇다면 \p{} 속성 토큰을 알 수도 있고 모를 수도 있습니다. 그렇다면 대답은 Unicode Characters and Properties in Jan Goyvaerts' regex tutorial입니다.

지원되는 경우 \p{Latin}을 사용하여 유니 코드 라틴어 블록을 사용하는 언어의 모든 것을 검색 할 수 있습니다.

관련 문제