2017-11-19 3 views
-1
나는 그런 (트위터 API를 통해 뽑아) 도널드 트럼프에 의해이 트윗으로 트위터 게시물에 대한 몇 가지 분석을 수행하는 R을 사용할

:R - 외국 유니 코드 문자를 제거하는 정규식

"Join me LIVE in South Korea\U0001f1fa\U0001f1f8\U0001f1f0\U0001f1f7\n#NationalAssembly #POTUSinAsia" 

먼저 내가 좋아하는 것 이 문자가 이스케이프 된 유니 코드 (예 : \U0001f1f8)를 선택하는 데 사용할 수있는 정규 표현식인지 확인합니다.

\\[[:alnum:]]{9}과 같이 작동한다고 가정하는 표현식이 작동하지 않습니다. 나는 그러나 흥미로운 오류 메시지가 있어요 : grepl에서

오류 ("\ [[: alnum :]] {9} ', 배, 펄 = T) : 잘못된 정규 표현'[[: alnum : ]] {9} '경고 메시지 : grepl ("\ : [: alnum :]] {9}", x, perl = T) : PCRE 패턴 컴파일 오류'POSIX 명명 된 클래스가 내부에서만 지원됩니다. ' 에서'클래스는 [: alnum :] 나는 그들이이 대표로되어있는 문자로 다시이 탈출 유니 코드로 변환 할 수있는 방법이 있는지] {9} '또한

, 내가 알고 싶습니다 그래서 나는 그것들을 프론트 엔드에있는 사용자에게 보여줄 수있다. 응용.

답변

1

iconv을 사용하면됩니다. 그러면 외부 유니 코드 문자가 포함 된 모든 비 ASCII 문자가 제거됩니다.

teststring <- "Join me LIVE in South Korea\U0001f1fa\U0001f1f8\U0001f1f0\U0001f1f7\n#NationalAssembly #POTUSinAsia" 

iconv(teststring, "latin1", "ASCII", sub="") 
#[1] "Join me LIVE in South Korea\n#NationalAssembly #POTUSinAsia"