Как gsub на тексте между двумя словами в R?
РЕДАКТИРОВАТЬ:
Я хотел бы разместить\n
перед конкретным неизвестным словом в моем тексте. Я знаю, что в первый раз в моем тексте появится неизвестное слово между «деревом» и «озером»
Ex. текста:
text
[1] "TreeRULakeSunWater"
[2] "A B C D"
РЕДАКТИРОВАТЬ:
«Дерево» и «озеро» никогда не изменятся, но слово между ними всегда меняется, поэтому я не ищу «RU» в моемregex
Что я сейчас делаю:
if (grepl(".*Tree\\s*|Lake.*", text)) { text <- gsub(".*Tree\\s*|Lake.*", "\n\\1", text)}
Проблема с тем, что я делаю выше, состоит в том, чтоgsub
будет суб всеtext
и оставить только\nRU
.
text
[1] "\nRU"
Я также попробовал:
if (grepl(".*Tree *(.*?) *Lake.*", text)) { text <- gsub(".*Tree *(.*?) *Lake.*", "\n\\1", text)}
Что бы я хотелtext
выглядеть послеgsub
:
text
[1] "Tree \nRU LakeSunWater"
[2] "A B C D"
РЕДАКТИРОВАТЬ:
Из комментария Виктора Стрибизева я могу сделать успешныйgsub
gsub("Tree(\\w+)Lake", "Tree \n\\1 Lake", text)
Но это будет делать gsub только в тех случаях, когда «RU» находится между «Tree» и «Lake», что является первым появлением неизвестного слова. Неизвестное слово и в этом случае «RU» будет многократно появляться в тексте , и я хотел бы разместить\n
перед каждым вхождением «RU», когда «RU» - это целое слово.
Новый отл. текста.
text
[1] "TreeRULakeSunWater"
[2] "A B C RU D"
Новый отл. из того, что я хотел бы:
text
[1] "Tree \nRU LakeSunWater"
[2] "A B C \nRU D"
Любая помощь будет оценена. Пожалуйста, дайте мне знать, если нужна дополнительная информация.