如何在R语言字符串中查找左括号的位置
在R中查找字符串里左括号"("的位置
首先定义目标字符串:
mystring <- "VAR_c(1:9)_XYZ"
基础R实现
查找第一个左括号的位置
使用regexpr()函数,它会返回第一个匹配项的起始索引(R中字符串索引从1开始):
# 转义左括号,因为它在正则表达式中是特殊字符 first_pos <- regexpr("\\(", mystring) as.integer(first_pos) # 输出:5
查找所有左括号的位置
如果字符串包含多个左括号,用gregexpr()获取所有匹配位置:
all_pos <- gregexpr("\\(", mystring) as.integer(all_pos[[1]]) # 输出:5(此例中仅一个匹配)
stringr包实现(tidyverse风格)
如果你常用tidyverse工具,stringr包的函数语法更简洁:
# 首次使用时先安装加载包 install.packages("stringr") library(stringr) # 查找第一个匹配 str_locate(mystring, "\\(") # 输出: # start end # [1,] 5 5 # 查找所有匹配 str_locate_all(mystring, "\\(") # 输出: # [[1]] # start end # [1,] 5 5
内容的提问来源于stack exchange,提问作者Shaun
相关产品推荐
相关产品推荐

