Мы можем использовать str_extract
и сопоставить его с регулярным выражением. Здесь мы используем регулярное выражение ((?<=\\[
), которое соответствует [
, за которым следуют одна или несколько цифр (\\d+
) и символы, которые не являются ]
([^]]+
)
library(stringr)
str_extract(str1, "(?<=\\[)\\d+[^]]+")
#[1] "34BND001"
Данные
str1 <- "[ADAM SMITH] update status of [34BND001] . Status [AVAILABLE => OUT_OF_SERVICE (dirty)]"
Чтобы узнать это выражение, вы можете найти дополнительную информацию о регулярных выражениях