r - 在字符串中定位字符
问题描述
我正在尝试从字符的右侧动态提取子字符串。
字符串<- adcde?7890 所需的子字符串:7890
为了实现这一点,我希望能够确定“?”的位置 在每个字符串中,在本例中,“?” 将是第 6 个字符。
最后我的代码看起来像这样:
substr("'的位置?'"+1 , str_length(string))
我只需要一个显示“?”位置的函数。在我的字符串中。
解决方案
我们可以用它str_locate
来查找字符的位置?
。它是一个正则表达式元字符,因此我们可以将它放在方括号(或转义)中以将其评估为文字字符
library(stringr)
substr(string, str_locate(string, "[?]")[1] + 1, str_length(string))
#[1] "7890"
或仅使用base R
,我们可以找到匹配位置regexpr
并将其用作起始位置substring
substring(string, regexpr("[?]", string)+1)
#[1] "7890"
或使用str_extract
str_extract(string, "(?<=[?])\\d+")
#[1] "7890"
数据
string <- 'adcde?7890'
推荐阅读
- azure - 如何在每次部署时创建唯一的 Guid 或在 ARM 模板中向用户隐藏参数 newGuid() 函数?
- javascript - TypeError:无法读取 D:\temp_project\smpms\routes\users.js:31:18 处未定义的属性“长度”
- c# - ASP.NET Core Identity 的密码策略在哪里?
- r - 如何从 RestRserve 的路径中提取参数?
- python-3.x - python 3 multiprocessing freeze_support() 是否将启动方法设置为生成?
- python-3.x - 在 TensorFlow2 中使用学习率计划和学习率预热
- python - 如何将 pandas 中的数据框求和超过 5
- java - 如果不是付费内容,如何点击网页元素?- Selenium Webdriver (Java)
- bash - 触摸,打开,在 Mac 10.15.6 终端上不起作用,PATH 问题
- mongodb - 分面搜索和选择多个值 - mongodb $facet