r - 提取R中的最后一个正则表达式匹配
问题描述
我正在使用mutate()
withstr_extract()
将数据框中的字符串列压缩为单个关键字列。我的问题是其中一个字符串包含两个关键字,而第二个对我来说更重要。但是,正则表达式总是先找到我告诉它寻找的替代方案。有没有办法改变这个?
MWE(无mutate()
):
teststring <- "abcdef"
str_extract(teststring, "b|c|a")
我希望能够按照我选择的顺序找到模式,而不是测试字符串中的第一个。
解决方案
如果您只想返回所选订单的第一个匹配项,则基于 Gki 在评论中的回答。我们可以用以下代码包装代码:
teststring <- "ccccbbbaaaaqwerty"
which.min(is.na((sapply(c("b","c","a"), stringr::str_extract, string=teststring))))
b
1
推荐阅读
- python - 仅具有朝向敌人和隐藏点的向量的隐藏搜索行为
- javascript - 带有 JSON GET 请求的 Ajax 未定义
- azure - 如何将 Azure ASE v1 迁移到 v2?
- javascript - bootstrap 4 - 模态表单,选择时不显示div
- javascript - Transform repetitive JQuery code into clean code
- plsql - 同一数据集的 2 个参考游标
- javascript - 滚动播放器最小化和浮动播放器不适用于 JW 播放器
- javascript - Chrome 似乎打破了 Youtube Embed API?
- sql - SQL query to bring back list of servers from specific date range
- python - 如何使用 python 从使用 php 和 javascript 的网页中解析信息