我正在寻找一种优雅的方式使用R中的正则表达式返回引用.我解释:
原文链接:https://www.f2er.com/regex/357194.html假设我想要找到以月份名称开头的字符串:
x <- c("May,1,2011","30 June 2011") grep("May|^June",x,value=TRUE) [1] "May,2011"
这是有效的,但我真的想隔离这个月份(即“May”,而不是整个匹配的字符串.
所以,可以使用gsub使用substitute参数返回回参考.但这有两个问题:
>你必须将模式包装在“.*(pattern).*)”中,以便在整个字符串上进行替换.
>而不是返回不匹配字符串的NA,gsub返回原始字符串.这显然不是我想要的:
代码和结果:
gsub(".*(^May|^June).*","\\1",x) [1] "May" "30 June 2011"
我可以通过进行各种额外的检查来编写一个解决方法,但这很快就变得非常混乱.
要清楚,所需的结果应该是:
[1] "May" NA
有没有办法实现这一点?