用一个特殊字符替换重复的特殊字符

时间:2016-08-17 02:08:00

标签: regex google-sheets

我正试图在REGEXREPLACE中使用Google Sheets删除重复的特殊字符\n

我无法通过单个实例替换所有重复的字符实例。

这是我的代码:

REGEXREPLACE("Hi Gene\n\n\n\n\nHope","\\n+","\\n")

我希望结果为:

Hi Gene\nHope

但它始终保持着新的界限。

Hi Gene\n\n\n\n\nHope

替换特殊字符必须是一个问题,因为:

REGEXREPLACE("Hi Gennnne\nHope","n+","n")

产地:

Hi Gene\nHope

如何使用Google Sheets中的单个特殊字符实例删除重复的特殊字符实例?

3 个答案:

答案 0 :(得分:1)

https://support.google.com/docs/answer/3098245?hl=en

REGEXREPLACE(text,regular_expression,replacement)

问题似乎在于它如何解释"文本"。如果我把它放在一个单元格中REGEXREPLACE("Hi Gene\n\n\n\n\nHope","","") 输出也是Hi Gene\n\n\n\n\nHope

如果我将文本放在一个单元格中,并使用适当的换行符,并使其REGEXREPLACE(A1, "(\n)\n*", "$1")有效。

注意我不能只做s/\n+/\n/,因为它仍然没有将换行符号解释为特别的。它只会输出\ n而不是换行符。

答案 1 :(得分:1)

修改

找到更简单的方法:

=REGEXREPLACE("Hi Gene\n\n\n\n\nHope","(\\n)+","\\n")

原始解决方案

你的这个公式:

=REGEXREPLACE(A1,REPT(F2,(len(A1)-len(REGEXREPLACE(A1,"\\n","")))/2),"\\n")

将您的文字放在A1。

工作原理

它的解决方法是,我们想要使用这样的最终公式:

REGEXREPLACE("Hi Gene\n\n\n\n\nHope","\\n+\\n+\\n+\\n+\\n+","\\n")

第一个目标是找到重复\\n+的次数:

=(len(F1)-len(REGEXREPLACE(F1,F2,F3)))/2

然后结合RegEx。

答案 2 :(得分:0)

我相信你不需要双重换行,例如只需搜索\n

REGEXREPLACE("Hi Gene\n\n\n\n\nHope", "\n+", "\n")

当您替换\\n时,您正在搜索文字文本\n,而不是换行符。