我在R中有以下向量:
x <- c("id: capture this , something: the useless chunk , otherstuff: useless , more stuff")
Run Code Online (Sandbox Code Playgroud)
我希望得到字符串"捕获这个".我使用过这个正则表达式:
library(rex)
r <- rex(
start,
anything,
"id: ",
capture(anything),
" , ",
anything
)
r
# > r
# > ^.*id: (.*) , .*
re_matches(x,r)
Run Code Online (Sandbox Code Playgroud)
但我得到的是:
> re_matches(x,r)
1
1 capture this , something: the useless chunk , otherstuff: useless
Run Code Online (Sandbox Code Playgroud)
它捕获我想要的东西,但也捕获字符串的其余部分.我只想要"捕获这个"字段.即使我使用gsub函数:
gsub("^.*id: (.*) , .*", "\\1", x)
Run Code Online (Sandbox Code Playgroud)
使用相同的正则表达式我得到了相同的结果.
这是R: R版本3.1.3(2015-03-09)的信息 - "Smooth Sidewalk"版权所有(C)2015统计计算平台的R基础:x86_64-pc-linux-gnu(64位)
和ubuntu的版本: 没有LSB模块可用.经销商ID:Ubuntu描述:Ubuntu 14.04.2 LTS版本:14.04代号:trusty