加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式组在R中捕获多个捕获组

发布时间:2020-12-14 06:47:06 所属栏目:百科 来源:网络整理
导读:在R中,是否可以从正则表达式匹配中提取组捕获?就我可以告诉,grep,grepl,regexpr,gregexpr,sub或gsub没有返回组捕获。 我需要从编码的字符串中提取键值对,因此: ((.*?) :: (0.[0-9]+)) 我可以总是只做多个完全匹配的greps,或做一些外(非R)处理,
在R中,是否可以从正则表达式匹配中提取组捕获?就我可以告诉,grep,grepl,regexpr,gregexpr,sub或gsub没有返回组捕获。

我需要从编码的字符串中提取键值对,因此:

((.*?) :: (0.[0-9]+))

我可以总是只做多个完全匹配的greps,或做一些外(非R)处理,但我希望我可以做到这一切内R.有一个功能或包提供这样的功能这样做吗?

str_match(),从 stringr包,会做到这一点。它返回一个字符矩阵,每个组在匹配(和一个整个匹配)一列:
> s = c("(sometext :: 0.1231313213)","(moretext :: 0.111222)")
> str_match(s,"((.*?) :: (0.[0-9]+))")
     [,1]                         [,2]       [,3]          
[1,] "(sometext :: 0.1231313213)" "sometext" "0.1231313213"
[2,] "(moretext :: 0.111222)"     "moretext" "0.111222"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读