多词正则表达式

  • 本文关键字:正则表达式 regex r
  • 更新时间 :
  • 英文 :


我需要同时从多个文本文档中提取多个单词。我使用了类似的正则表达式grep

b <- grep("sale down",wfr1[x]) 

如果我加上第二个字符串,结果是zero。示例:

b <- grep("sale down","goes up","goes down slowly",wfr1[x]) 

我想要单词的组合表达,以提取我喜欢上面两个或三个单词,如果它匹配。有什么建议吗?

这是我的语料库或数据文件,其中包含我想要提取的关键字。我想说明以下文件中出现的关键字

科技股关注苹果公司诺基亚公司nokteslatslablackberrybbry马克·库伯写的关于一月大减价的文章苹果公司nasdakaapls ibeacon科技用于在ces清道夫狩猎苹果公司nasDakaapls股票开始交易时的价格为,整个交易时段都攀升到了高点,后来当日内交易结束时,股票最终下跌到了苹果公司的收盘点。销售额下降又上升。减价在将移动业务出售给微软几个月后,诺基亚公司adrnysenok正式终止了对symbian和meego应用程序的支持。这家芬兰公司放弃了这两款国产移动操作系统,转而支持微软的windows手机有10亿股流通股,其中10亿股已在市场上市

在您的问题中,您仍不清楚要搜索的模式是什么。有点违反直觉,模式是grep中的第一个参数,您正在处理的字符串,第二个。

我想您想要的是在几个字符串中搜索regex模式。然后,您需要传递一个向量,而不是像现在这样传递几个字符串作为单独的参数,例如(参见?grep)

> grep("test", "where is test")
[1] 1
> grep("test", c("another test", "where is test"))
[1] 1 2

另一方面,如果您想在文档中搜索几个字符串中的一个,则需要更改正则表达式,例如使用OR运算符。

> grep("test|nothing", c("just nothing"))
[1] 1
> grep("test|nothing", c("another test or maybe nothing"))
[1] 1
> grep("test|nothing", c("just a test"))
[1] 1
> grep("test|nothing", c("neither tes*  nor nothin*"))
integer(0)

grep状态的文档:If a character vector of length 2 or more is supplied, the first element is used with a warning.

我想你会想要这样的东西:

grep("sale down|goes up|goes down slowly", wfr1[x])

最新更新