R: удалить конец текста после совпадения строки
Я хотел бы удалить любой текст, который появляется после совпадения определенного символа либо THE END
или же FINIS
, Я знаю, что это очень похоже на эту тему, но я не достаточно опытен в регулярных выражениях, чтобы сделать эту работу для меня.
Мой текст - книги Шекспира, взятые из проекта Гутенберга. Они обычно выглядят примерно так
txt <- "... thou hast tam'd a curst shrow. LUCENTIO. 'Tis a wonder,
by your leave, she will be tam'd so. Exeunt THE END <<THIS ELECTRONIC VERSION OF THE
COMPLETE WORKS OF WILLIAM ..."
или же
txt <- "... thou hast tam'd a curst shrow. LUCENTIO. 'Tis a wonder,
by your leave, she will be tam'd so. Exeunt FINIS <<THIS ELECTRONIC VERSION OF THE
COMPLETE WORKS OF WILLIAM ..."
Мой идеал будет выглядеть примерно так gsub("^[THE END]*|^[FINIS]*", "", txt)
возврате "... thou hast tam'd a curst shrow. LUCENTIO. 'Tis a wonder, by your leave, she will be tam'd so. Exeunt
1 ответ
Решение
Вы достаточно близки, чтобы сделать это, вы должны использовать:
gsub("(THE END|FINIS).*", "", txt)
Кстати, как указал thelatemail в своем комментарии sub
будет достаточно для одной замены.