首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中异常的gsub

问在R中异常的gsub
EN

Stack Overflow用户
提问于 2016-08-21 06:19:42
回答 2查看 631关注 0票数 2

我正在从希伯来语文本中删除英文字符,但希望保留我想要的英文单词的简短列表,例如words2keep <- c("ok", "hello", "yes*")。因此,我当前的正则表达式是text <- gsub("[A-Z,a-z]", "", text),但问题是如何添加异常,这样它就不会删除所有的英语单词。

再现例子:

代码语言:javascript
复制
text = "ok אני מסכים איתך Yossi Cohen"

在gsub之后异常

代码语言:javascript
复制
text = "ok אני מסכים איתך"

谢谢你的所有建议

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-21 07:12:33

这是个棘手的问题。我认为,我们可以通过使用\b单词边界断言对整个单词进行匹配,同时在匹配之前包含一个负面的前瞻性断言,该断言拒绝您想要删除的单词(同样是完整的单词)(或相等的白名单以供保存)。这似乎正在发挥作用:

代码语言:javascript
复制
gsub(perl=T,paste0('(?!\\b',paste(collapse='\\b|\\b',words2keep),'\\b)\\b[A-Za-z]+\\b'),'',text);
[1] "ok אני מסכים איתך  "
票数 3
EN

Stack Overflow用户

发布于 2016-08-21 07:52:28

使用带A的gsub函数所有大写字母A到Z都将被删除,对于总单词删除使用.*进行全字符删除

代码语言:javascript
复制
gsub("[A-Z].*","",text)

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

#data

text = "ok אני מסכים איתך Yossi Cohen"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39061395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档