我正在从希伯来语文本中删除英文字符,但希望保留我想要的英文单词的简短列表,例如words2keep <- c("ok", "hello", "yes*")。因此,我当前的正则表达式是text <- gsub("[A-Z,a-z]", "", text),但问题是如何添加异常,这样它就不会删除所有的英语单词。
再现例子:
text = "ok אני מסכים איתך Yossi Cohen"在gsub之后异常
text = "ok אני מסכים איתך"谢谢你的所有建议
发布于 2016-08-21 07:12:33
这是个棘手的问题。我认为,我们可以通过使用\b单词边界断言对整个单词进行匹配,同时在匹配之前包含一个负面的前瞻性断言,该断言拒绝您想要删除的单词(同样是完整的单词)(或相等的白名单以供保存)。这似乎正在发挥作用:
gsub(perl=T,paste0('(?!\\b',paste(collapse='\\b|\\b',words2keep),'\\b)\\b[A-Za-z]+\\b'),'',text);
[1] "ok אני מסכים איתך "发布于 2016-08-21 07:52:28
使用带A的gsub函数所有大写字母A到Z都将被删除,对于总单词删除使用.*进行全字符删除
gsub("[A-Z].*","",text)
[1] "ok אני מסכים איתך "
#data
text = "ok אני מסכים איתך Yossi Cohen"https://stackoverflow.com/questions/39061395
复制相似问题