微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式组在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"

原文地址:https://www.jb51.cc/regex/358140.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐