Сформулируйте слово с помощью регулярных выражений
Я пытаюсь остановить слова в тексте с помощью регулярных выражений.
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 ответа
Решение
Одно возможное регулярное выражение для решения этой проблемы заменяет "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."
Мы можем попробовать использовать 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."