Как удалить теги разрыва строки из вектора символов с помощью регулярных выражений - PullRequest
1 голос
/ 28 апреля 2020

Как удалить тег разрыва строки \n из строки с помощью регулярных выражений?

Я пытался использовать stringr :: str_replace (), но не получилось.

Например, я есть строка:

  text= "de sentir sua atitude\n\n  ela merece\n\n  ele não dos cabelos\n\n  você vai te puxo pra caralho só no corpo nele e berrar que não sei dizer alguma coisa\nem precisar ser tão bonita o meio das outras\n\n  no chão.\nespecialmente quando ele levou tanto buscava. minha mãe dele guardada na banheira\n\n  \n\n  e eu te amar\n\n   me desapaixonar por causa da festa\n\n  você ama e\nde fato\nte amar é como um.\nque possamos nada especial acho que você imagina a conexão ou onde a independência aqui bocas nunca teve o amor com esta é seu ambiente\nnão"

И я попытался использовать [:punct:]n и \\n{1,}, но все они потерпели неудачу в этом, когда я запустил, чем в функцию замены с:

stringr::str_replace(text, '([:punct:]n|\\n{1,})', ' ')

Ответы [ 2 ]

1 голос
/ 28 апреля 2020

Использование базы R

string <- "aaaa\naaaaaaa\naaaaa\n"
gsub('\n', '', string)

выведет "aaaaaaaaaaaaaaaa"

Также работает с вашим текстом. Иногда самое простое - лучшее решение, нет необходимости в регулярных выражениях, это технически буквальное совпадение.

1 голос
/ 28 апреля 2020

Мы можем использовать str_remove_all, что сделало бы его компактным, вместо использования аргумента замены в str_replace_all с ""

stringr::str_remove_all(text, '([[:punct:]]|\\n{1,})')

ПРИМЕЧАНИЕ: str_replace заменяет только первый экземпляр и не более чем один

...