Мне нужна помощь в отношении регулярного выражения, которое выделяет третий элемент, разделенный подчеркиванием.Количество подчеркиваний является переменным.Я могу сделать это с помощью str_split, но есть ли способ получить тот же результат, что и ниже, используя str_replace?(Желаемый результат - x = AAAA, BBBB, CCCC, DDDD
. Если возможно, поддержание группировки с использованием ()
.)
library(tidyverse)
library(stringr)
d <- enframe(c("asfe_01_AAAA_fses_feee",
"asfe_87_BBBB_fses_feee",
"99_fesf_CCCC_feee",
"99_fesf_DDDD"),
name = NULL, value = "txt")
d %>%
mutate(x = str_replace(txt, "(.+)_(.+)_(.+)_*(.*)_*(.*)", "\\3"),
want_strsplit = str_split(txt, "_", simplify = TRUE)[, 3])
#txt x want_strsplit
# <chr> <chr> <chr>
#1 asfe_01_AAAA_fses_feee feee AAAA
#2 asfe_87_BBBB_fses_feee feee BBBB
#3 99_fesf_CCCC_feee feee CCCC
#4 99_fesf_DDDD DDDD DDDD