Сформулируйте слово с помощью регулярных выражений - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь обрезать слова в тексте с помощью регулярных выражений.

c <- "Foo is down. No one wants Foos after this. Before, people liked Fooy a lot."

Желаемый результат:

"Foo is down. No one wants Foo after this. Before, people liked Foo a lot."

Мне нужно сохранить слово Foo, но удалитьвсе символы, которые следуют в этом слове, сохраняя остальную часть строки.

Мне удалось отделить суффикс от основания слова, я могу удалить все после вариаций слова «Foo», и я экспериментировал с границами слова, но не могу понять, как добраться до желаемого результата.

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Мы можем попробовать использовать gsub и заменить шаблон (?<=Foo)\S+ пустой строкой:

x <- "Foo is down. No one wants Foos after this. Before, people liked Fooy a lot."
output <- gsub("(?<=Foo)\\S+", "", x, perl=TRUE)
output

[1] "Foo is down. No one wants Foo after this. Before, people liked Foo a lot."

Демо

0 голосов
/ 10 октября 2018

Одно возможное регулярное выражение для решения этой проблемы заменяет «Foo с одной или несколькими буквами после него» на «Foo»:

> x = "Foo is down. No one wants Foos after this. Before, people liked Fooy a lot."
> stringr::str_replace_all(x, "Foo[a-z]+", "Foo")
[1] "Foo is down. No one wants Foo after this. Before, people liked Foo a lot."
...