Удаление специальных символов из текстового файла в R - PullRequest
0 голосов
/ 19 марта 2020

Я использую текстовый файл в R и использую функцию readLine и регулярные выражения для извлечения слов из него. Файл использует специальные символы вокруг слов (например, # поет перед и после слова, чтобы показать, что оно выделено жирным шрифтом, или @ перед и после слова, чтобы показать, что оно должно быть выделено курсивом), чтобы указать специальные значения, которые портят мои регулярные выражения.

Пока это мой код, который удалил все пустые строки, а затем скомбинировал мой текстовый файл в один вектор:

    book<-readLines("/Users/Desktop/SAMPLE .txt",encoding="UTF-8")
    #remove all empty lines
    empty_lines = grepl('^\\s*$', book)
    book = book[! empty_lines]
    #combine book into one variable
    xBook = paste(book, collapse = '')
    #remove extra white spaces for a single text of the entire book
    updated<-trimws(gsub("\\s+"," ",xBook))

когда я запускаю обновление, я вижу весь файл, сохраненный в переменной обновленный, но со специальными символами:

updated [1] "Общепризнанно, что # одинокий человек, обладающий удачей, должен нуждаться в жене. Однако малоизвестные чувства или взгляды такого @ человека @ могут быть при его первом входе в окрестности, эта истина так хорошо зафиксирована в умах окружающих семей, @ что @ он считается законным свойством того или иного # их # дочери.

Как я могу удалить все ведущие или конечные # или @ из слов в моем обновлении переменная?

мой желаемый вывод - просто текст, без указания слов, которые должны быть выделены жирным шрифтом или курсивом:

updated [1] "Это правда, общепризнанная, что одинокий мужчина, обладающий удачей, должен нуждаться в жене. Каким бы малоизвестным ни были чувства или взгляды такого человека при его первом въезде в окрестности, эта истина настолько хорошо закреплена в умах окружающих семей, что он считается законным имуществом той или иной из их дочерей.

1 Ответ

0 голосов
/ 19 марта 2020
gsub("[@#]([a-zA-Z]+)[@#]", "\\1", x)
...