首页 > 解决方案 > 仅删除换行符之间的空格

问题描述

我有以下带有换行符“\n”和空格“”的示例字符串:

a <- "\n \n \n \nTEST TEST\n"

我想删除换行符(“\n”)之后的空格(“”),而不是其他字符串之后的空格(比如我的玩具示例中的“TEST”)。因此,我想要的输出是:

"\n\n\n\nTEST TEST\n"

我尝试了 stringr 的str_remove_allstr_replace_all但没有成功,因为在这种情况下它们似乎有问题,因为换行符的相邻出现。这是我得到的最接近的:

str_replace_all(a, "\n[ ]*\n", "\n\n")

我在这个(可能非常简单)问题上花了几个小时,因此非常感谢任何帮助!

标签: rregexline-breaksstringr

解决方案


我相信您可以删除任何包含水平空格的行。stringr,您可以使用

library(stringr)
a <- "\n \n   \n \nTEST TEST\n"
stringr::str_replace_all(a, "(?m)^\\h+$", "")

请参阅R 演示正则表达式演示详情

  • (?m)- 一个多行修饰符,^匹配任何行的开头并$匹配任何行尾的位置
  • ^- 线开始
  • \h+- 一个或多个水平空白字符
  • $- 行结束。

推荐阅读