r - 正则表达式提取三个字符
问题描述
我有以下字符串:
str <- "add2AHJJK_GLX_KLKNKMEMa13"
如何使用 R 从中提取“GLX”,即下划线之间的单词?在该示例中,正好有两个下划线,而不是更多。
解决方案
一个选项,gsub
用于将字符串开头 ( ) 中的非 ( ) 字符匹配到其余字符 ( ) 中的_
或( ) 字符,并替换为空白 ( )[^_]*
^
_
|
_
""
gsub("^[^_]*_|_.*", "", str)
#[1] "GLX"
或者另一种选择是提取regexpr/regmatches
regmatches(str, regexpr('(?<=_)\\w+(?=_)', str, perl = TRUE))
#[1] "GLX"
推荐阅读
- git - Azure DevOps 上的 Git 告诉我有 100 个提交要合并,即使我只做了一些更改
- oracle11g - 授予 Oracle 中特定索引的 OR 可见性
- qt - 所选项目的字体大小不会改变
- webpack - 如何在 EJS 文件中获取 JSON 内容 [WEBPACK]
- r - 满足条件时如何删除特定行?
- android-ndk - 如何修复:“NDK 版本 x 不再支持 ABI 过滤器‘arm64-v8a’”
- algorithm - 在有向无环图的分裂和合并处插入节点
- c++ - msvc 的动态数组初始化行为不同于 gcc 和 clang
- ios - 如何防止iOS应用缓存任何数据
- amazon-ec2 - AWS - 通过 kubectl 创建的网络负载均衡器缺少 SSL 证书