我需要从多个文本文档中同时提取多个单词。我使用了正则表达式grep
,如
b <- grep("sale down",wfr1[x])
如果我添加第二个字符串,结果会给我zero
。示例:
b <- grep("sale down","goes up","goes down slowly",wfr1[x])
我希望组合单词表达式,如果匹配,就像上面两三个单词一样提取我。有什么建议吗?
这是我的语料库或包含我想要提取的关键字的数据文件。我想在下列文件中列出关键字的出现
科技股观看苹果公司诺基亚公司nok tesla tsla blackberry bbry 标记库珀写在1月销售下来和股票上涨 苹果公司纳斯达克帕普尔ibeacon科技公司将在ces scavenger中用作趣味苹果公司纳斯达克萨普斯股票开始交易,价格在整个交易时段攀升至高位,后来当daytrade结束时股票终于跌至最终收于苹果公司纳斯达克帕普斯股票显示每周表现下降,并且alos上升为运动。销售下降并上升。销售下来 将移动业务出售给微软诺基亚公司adr nysenok正式结束对Symbian和meego应用程序的支持几个月后芬兰公司放弃了两个本土移动操作系统,转而支持微软windows windows nokia公司adr nysenok昨日关闭股票机构所有权是其股本诺基亚上涨公司adr nysenok已在其中拥有10亿股流通股,其中10亿股已经上市销售下降已在市场上浮动
答案 0 :(得分:1)
在你的问题中,你仍然有点不清楚你正在寻找什么样的模式。有点违反直觉,模式是grep
中的第一个参数,你正在处理的字符串,第二个。
我想你想要的是在几个字符串中搜索正则表达式模式。然后你需要像现在一样传递一个向量,而不是几个字符串作为单独的参数,例如(见?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)
答案 1 :(得分:1)
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])