如何删除字符串中的空字符串(“”)

Roc*_*cer 1 r

我在使用 rvest 进行网页抓取时遇到了一个奇怪的问题。

我刮了以下名称:"Ab­dich­ter/in EFZ"起初看起来很正常。但是,当我将文件写入 csv 时,我发现字母之间有“-”。在 Excel 中,这个词看起来像这样:Ab-­dich-ter/in EFZ

所以我做了一个str_split(x, ""),发现字符串实际上是这样的:

c("A", "b", "­", "d", "i", "c", "h", "­", "t", "e", "r", "/", "i", "n", " ", "E", "F", "Z")
Run Code Online (Sandbox Code Playgroud)

我试图从字符串中取出空字符串,但我没有做到。我试过:

my_string <- str_split(my_string , "")
Run Code Online (Sandbox Code Playgroud)

进而

paste0(my_string[my_string != ""])
Run Code Online (Sandbox Code Playgroud)

但这没有帮助。

因此,我想知道:

  1. 空字符串如何进入该字符串,以及
  2. 怎么弄出来。

编辑:这是网页

这是我获得字符串的方式:

library(rvest)

read_html("https://berufskunde.com/ausbildungsberufe/ausbildung-abdichter.html", encoding = "UTF-8") %>% 
  html_nodes(".section") %>% 
  html_nodes(".text-rot") %>% 
  html_text()
Run Code Online (Sandbox Code Playgroud)

Kon*_*lph 5

您观察到的字符串不是空字符串,而是一个软连字符(U+00AD) 字符。它应该只在单词跨行时显示,但一些编辑器不能正确处理它,这就是为什么在您检查 CSV 时它可能会显示的原因。

无论如何,您可能希望将其从字符串中删除:

str = gsub('\U00AD', '', str)
Run Code Online (Sandbox Code Playgroud)