我从希伯来文中删除了英文字符,但希望保留一份我想要的英文单词的简短列表,例如words2keep <- c("ok", "hello", "yes*")
。
所以我目前的正则表达式是text <- gsub("[A-Z,a-z]", "", text)
,但问题是如何添加例外,以便它不会删除所有英文单词。
再生示例:
text = "ok אני מסכים איתך Yossi Cohen"
在gsub之后有异常
text = "ok אני מסכים איתך"
感谢您提出的所有建议
答案 0 :(得分:3)
这是一个棘手的问题。我认为我们可以通过使用\b
词边界断言来匹配整个单词,同时在匹配之前包含一个否定前瞻断言(拒绝这些词)(同样,你希望将黑名单删除(或等同于白名单以便保存)的整个单词)。这似乎有效:
gsub(perl=T,paste0('(?!\\b',paste(collapse='\\b|\\b',words2keep),'\\b)\\b[A-Za-z]+\\b'),'',text);
[1] "ok אני מסכים איתך "
答案 1 :(得分:0)
使用带有[A-Z]的gsub函数将删除所有大写字母A到Z字母,以便删除总字数。*用于删除总字符数
gsub("[A-Z].*","",text)
[1] "ok אני מסכים איתך "
#data
text = "ok אני מסכים איתך Yossi Cohen"