#r
#r
Вопрос:
Я хочу текст из второго предложения.
text="I need to go to mall today. I want to purchase clothes. Also, I want to buy shoes."
Ожидаемый результат:
I want to purchase clothes. Also, I want to buy shoes.
Ответ №1:
Возможность с strsplit()
:
sapply(strsplit(text, ". ", fixed = TRUE),
function(x) paste(x[2:length(x)], collapse = ". "))
[1] "I want to purchase clothes. Also, I want to buy shoes."
Ответ №2:
Мы также можем использовать stringr::str_match
для записи всего после первой точки.
stringr::str_match(text, "\.(.*)")[, 2]
#[1] " I want to purchase clothes. Also, I want to buy shoes."
[, 2]
чтобы получить группу захвата.
Ответ №3:
Мы можем использовать base R
with sub
для сопоставления символов, которые не являются a, за которыми .
следует a .
, и пробел, если таковой имеется, заменить пробелами ( ""
)
sub("^[^.] \.\s*", "", text)
#[1] "I want to purchase clothes. Also, I want to buy shoes."
и эквивалентный вариант в tidyverse
был бы
library(stringr)
str_replace(text, "^[^.] \.\s*", "")
#[1] "I want to purchase clothes. Also, I want to buy shoes."