让我们说这是文字输入
Text = "\s\n\t\s\s\n\t\s\n\s\s Hello\n\n\n\n\n\n\n\n\s\s\t\t\s\t Hello \s\s\n\n\n\t\s\s\s\n\t"
我只是想删除连续的(空格或换行符或制表符),但保留单个和空格后跟空格应替换为\ n ...我希望输出为
"Hello\nHello"
我已经尝试过这个
RemoveTrails = re:replace(Text, "(^\\s+)|(\\s+$)", "", [global,{return,list}]),
Singlenewline = re:replace(RemoveTrails, "(\\n{2,})", "\n", [global,{return,list}]),
TrimmedText = re:replace(Singlenewline, "(\\s{2,})", "\s", [global,{return,list}])
这给了我输出
"Hello\n \t\t \t Hello"
我无法继续......我认为应该有一种简单的方法来实现预期的输出......请指导我这个
答案 0 :(得分:1)
好吧,\s
不是有效字符,所以你的输入文字有点偏。然而,在纠正之后,这应该做你想要的:
re:replace(Text, "([\r\n]?)\\s+", "\\1 ", [global, multiline, {return, list}]).
与“RemoveTrails”正则表达式结合使用,以清除任何不需要的前导/尾随空格。不幸的是你不能用一个正则表达式完成所有这些(或者你可以,但我不想看到它)