2015-09-17 8 views
5

Haben gekämpft, um niqqud (diakritische Zeichen zur Darstellung von Vokalen oder unterscheiden zwischen alternativen Aussprachen von Buchstaben des hebräischen Alphabets) zu entfernen. Ich habe zum Beispiel diese Variable: sample1 < - „הֻסְמַק“Entfernen Hebräisch "niqqud" mit r

und ich kann nicht effektiv Weg finden, die Zeichen unter den Buchstaben zu entfernen.

versucht Stringer, mit str_replace_all(sample1, "[^[:alnum:]]", "") gsub('[:punct:]','',sample1) versucht

ohne Erfolg ... :-( irgendwelche Ideen?

+1

Werfen Sie einen Blick auf [my gsub Beispiel] (http://ideone.com/1IxAeA), funktioniert es für Sie? –

+0

@Stribizhev - vielen Dank! es funktioniert wie ein Charme –

+0

Sie sollten das Tag [Tag: Hebräisch] verwenden! auch [tag: unicode] – smci

Antwort

2

können Sie die \p{M} Unicode-Kategorie verwenden diakritischen Zeichen mit Perl-wie Regex zu entsprechen, und gsub alle von ihnen in einem Rutsch wie folgt aus:

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

Ergebnis: [1] "הסמק"

Siehe demo

\p{M} oder \p{Mark}: ein Zeichen bestimmt, die mit einem anderen Zeichen kombiniert werden (z.B. Akzente, Umlaute, umschließende Boxen usw.).

Weitere Informationen finden Sie unter Regular-Expressions.info, "Unicode Categories".