2015-09-17 13 views
5

Đã đấu tranh để xóa niqqud (dấu hiệu diacritical được sử dụng để biểu diễn nguyên âm hoặc phân biệt giữa cách phát âm thay thế của các chữ cái trong bảng chữ cái tiếng Do Thái). Tôi có ví dụ biến này: sample1 < - "הֻסְמַק"xóa tiếng Do Thái "niqqud" bằng r

Và tôi không thể tìm thấy cách hiệu quả để xóa các ký hiệu bên dưới các chữ cái.

thử Stringer, với str_replace_all(sample1, "[^[:alnum:]]", "") thử gsub('[:punct:]','',sample1)

không thành công ... :-( bất kỳ ý tưởng?

+1

Hãy xem [ví dụ về gsub của tôi] (http://ideone.com/1IxAeA), nó có phù hợp với bạn không? –

+0

@stribizhev - cảm ơn bạn rất nhiều! nó hoạt động như một nét duyên dáng –

+0

Bạn nên sử dụng thẻ [tag: hebrew]! cũng [tag: unicode] – smci

Trả lời

2

Bạn có thể sử dụng các loại \p{M} Unicode để phù hợp với dấu với regex Perl-như thế, và gsub tất cả trong số họ trong một đi như thế này:

sample1 <- "הֻסְמַק" 
gsub("\\p{M}", "", sample1, perl=T) 

Kết quả: [1] "הסמק"

Xem demo

\p{M} hoặc \p{Mark}: một nhân vật dự định sẽ được kết hợp với một nhân vật khác (ví dụ dấu trọng âm, dấu âm, hộp kèm theo, v.v.).

Xem thêm tại Regular-Expressions.info, "Unicode Categories".

Các vấn đề liên quan