ale*_*523 9 regex string parsing r gsub
我见过很多提取 w/ 的迭代,gsub但它们主要处理从左到右或在一次发生后提取。我想从右到左匹配,计算 4 次出现-,匹配第 3 次和第 4 次出现之间的所有内容。
例如:
string outcome
here-are-some-words-to-try some
a-b-c-d-e-f-g-h-i f
Run Code Online (Sandbox Code Playgroud)
以下是我尝试使用的一些参考资料:
你可以用
([^-]+)(?:-[^-]+){3}$
Run Code Online (Sandbox Code Playgroud)
R这可能是
library(dplyr)
library(stringr)
df <- data.frame(string = c('here-are-some-words-to-try', 'a-b-c-d-e-f-g-h-i', ' no dash in here'), stringsAsFactors = FALSE)
df <- df %>%
mutate(outcome = str_match(string, '([^-]+)(?:-[^-]+){3}$')[,2])
df
Run Code Online (Sandbox Code Playgroud)
和产量
string outcome
1 here-are-some-words-to-try some
2 a-b-c-d-e-f-g-h-i f
3 no dash in here <NA>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10535 次 |
| 最近记录: |