2016-08-21 5 views
1

ヘブライ語のテキストから英語の文字を削除していますが、英語の単語のリストを希望します。 words2keep <- c("ok", "hello", "yes*")。 私の現在の正規表現はtext <- gsub("[A-Z,a-z]", "", text)ですが、問題はすべての英語の単語を削除しないように例外を追加する方法です。gsub in R

reproducibe例:例外

text = "ok אני מסכים איתך" 

とGSUB後

text = "ok אני מסכים איתך Yossi Cohen" 

これはトリッキーなものですすべての提案を

+0

のためにそれはあなたの答えを持っているようにhttp://stackoverflow.com/questions/2404010/match-everything-except-for-specified-strings –

答えて

3

、ありがとうございました。 \b単語境界アサーションを使用して単語全体と照合することでやり遂げることができると同時に、一致の直前に否定的な先読みアサーションを入れて、単語(再度全単語)を拒否します削除のためにブラックリストに登録したい(または保存のためのホワイトリストに相当する)。これが動作しているように表示されます。[AZ] Zの文字にすべて大文字のAと

gsub(perl=T,paste0('(?!\\b',paste(collapse='\\b|\\b',words2keep),'\\b)\\b[A-Za-z]+\\b'),'',text); 
[1] "ok אני מסכים איתך " 
0

使用GSUB機能が削除されます、総単語除去用に*総文字の除去このポーズは思わ

gsub("[A-Z].*","",text) 

[1] "ok אני מסכים איתך " 

#data 

text = "ok אני מסכים איתך Yossi Cohen" 
+1

これはちょうどうまく動作しているとは何の関係もありません –