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

前端之家收集整理的这篇文章主要介绍了正则表达式组在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"

猜你在找的正则表达式相关文章