Как разбить строки, разделенные множеством точек с запятой в R? - PullRequest
0 голосов
/ 29 мая 2020

Мое желание состоит в том, чтобы узнать длину определенного текста, разделенного ;, который идет после любого числа. В тексте с названием txt ниже я не хочу рассматривать первые две точки с запятой. Чтобы получить длину, ; следует после 6, следует учитывать 5. Я имею в виду, что код должен заглядывать назад в некоторые числа , чтобы считать подходящими ;.

library(stringr)
txt <- "A;B; dd (2020) text  pp. 805-806; Mining; exercise (1999), ee, p-123-125; F;G;H text, (2017) kk"

lenghths(strsplit(txt,";")) дает мне 8. Однако в моем случае это должно быть 3. Любая помощь приветствуется.

1 Ответ

1 голос
/ 29 мая 2020

Мы можем использовать поиск по регулярному выражению, чтобы сопоставить ;, который следует за di git ((?<=[0-9])), и получить lengths

lengths(strsplit(txt, "(?<=[5-6]);", perl = TRUE))
#[1] 3

Или используя str_count

library(stringr)
str_count(txt, '[5-6];') + 1
#[1] 3
...