如何用R的stringr包实现从字符串中提取i18n$t函数参数?
基于stringr包的i18n翻译内容提取函数实现
功能说明
- 入参:任意字符串向量
- 功能:提取所有
i18n$t("")结构中双引号包裹的内容 - 返回值:所有匹配到的内容组成的字符向量,无匹配时返回空向量
实现代码
# 加载依赖包 library(stringr) # 定义提取函数 extract <- function(str_vec) { # 正则匹配规则:捕获i18n$t("与")之间的非双引号内容 pattern <- 'i18n\\$t\\("([^"]+)"\\)' # 提取所有匹配项的第一捕获组内容 matched <- str_extract_all(str_vec, pattern, group = 1) # 展开为一维向量返回 unlist(matched, use.names = FALSE) }
测试验证
# 测试用示例向量 vec <- c( "div(span(icon(\"hospital-user\"), i18n$t(\"Enrolments\"), \"or\", i18n$t(\"Paper\"))),", "a string with no matching pattern", "Lala i18n$t(\"Rock\")" ) # 调用函数 extract(vec)
运行输出结果与预期完全一致:
[1] "Enrolments" "Paper" "Rock"
内容的提问来源于stack exchange,提问作者tic-toc-choc
相关产品推荐
相关产品推荐

