【发布时间】:2023-03-15 10:17:01
【问题描述】:
我有以下示例字符串,其中包含换行符“\n”和空格“”:
a <- "\n \n \n \nTEST TEST\n"
我想删除换行符 ("\n") 之后的空格 (" "),但不删除其他字符串之后的空格(例如我的玩具示例中的 "TEST")。因此,我想要的输出是:
"\n\n\n\nTEST TEST\n"
我尝试了 stringr 的 str_remove_all 和 str_replace_all 但没有成功,因为在这种情况下,这些似乎有问题,因为换行符的相邻出现。这是我得到的最接近的:
str_replace_all(a, "\n[ ]*\n", "\n\n")
我在这个(可能非常简单)问题上花了几个小时,因此非常感谢任何帮助!
【问题讨论】:
-
目前尚不清楚在
" \n \n \n \n TEST TEST\nTest1 Test2 \n "的情况下您想得到什么如果您需要一个可靠解决方案的明确答案,请分享您当前的代码。 “我花了几个小时在这上面” - 什么不起作用?你能分享你使用的正则表达式吗?请注意,您说“仅删除换行符之间的空格”,但TEST TEST中的空格也在两个\ns 之间,并且您希望它保留。请澄清您的问题。 -
感谢 Wiktor 的提示,我认为这很清楚,因为我写了“中间”换行符(不包括“之前”和“之后”换行符)。然而,如果前导和尾随空格也被删除,这不是一个大问题。我最接近尝试这个:str_replace_all(a, "\n[ ]*\n", "\n\n"),但这只会删除不重叠的事件。与此同时,LC-datascientist 解决了我的问题。
-
我以为您只想从空行中删除空格(空格和制表符)。请使用您的实际尝试和实际问题描述来编辑问题。
标签: r regex line-breaks stringr