regex 如何正确使用gsub表示“\\n\\n”?

sd2nnvve  于 2022-11-18  发布在  其他
关注(0)|答案(2)|浏览(120)

使用gsub(),我想将此文本中的“\n\n”替换为“”:

mystring<-"People Storm Seonul Airport as Citizens Leave\\n\\nCHOI JEONGHO\\n\\nSEOUL, South Korea, Jan. 31"

但是,当我运行gsub("[\r\\n]", " ", mystring)时,它删除了文本中的所有n。
输出为:

"People Storm Seo ul  Airport as Citize s Leave    CHOI JEO GHO    SEOUL, South Korea, Ja . 31"

你能教我为什么会这样,以及如何只删除“\n\n”吗?

qij5mzcb

qij5mzcb1#

1.您不想使用方括号,因为您要匹配一系列字符-方括号将单独匹配任何字符,这就是为什么您最终没有n s。
1.要匹配文字\\n,需要对两个反斜杠进行转义,得到\\\\n

gsub("(\r)|(\\\\n)", " ", mystring)

# "People Storm Seonul Airport as Citizens Leave  CHOI JEONGHO  SEOUL, South Korea, Jan. 31"
6rvt4ljy

6rvt4ljy2#

下面是stringr包中的一个选项,在R中,你需要使用\\来转义反斜杠,所以你需要使用\\\\n作为参数:

stringr::str_remove_all(mystring, "\\\\n")

"People Storm Seonul Airport as Citizens LeaveCHOI JEONGHOSEOUL, South Korea, Jan. 31"

相关问题