我有一个变量summary
,如下所示:
T he
Fox
Jumped
Over
要清理summary
有三个部分:
T he
目标是:
T he
Fox
Jumped
Over
注意:我尝试了summary.replace(/\s\s+/g, ' ');
,但输出T he Fox Jumped Over
,它负责第一部分,但完全破坏了第二部分的垂直间距,因为它考虑它连续间距。如果标签存在,也应该删除/清理标签。
我怎样才能达到目标?
更新:我想我在第2部分搞砸了#换行符,所以我更新了它。但目标是我们在间距/格式方面所追求的目标。
答案 0 :(得分:5)
summary.replace(/ +/g, ' ').replace(/\n\n+/g, "\n\n").replace(/\t+/g, '');
答案 1 :(得分:2)
两个+连续的空格或换行符。
查找((?:[ ]|\r?\n))\1+
替换引擎使用的$1
或\1
。
修改以删除所有标签。
(注意 - 当标签匹配时,捕获组1将为空
结果:选项卡被删除,而不是替换。使用相同的替换。)
查找(?:\t+|((?:[ ]|\r?\n))\1+)
替换$1
或\1
edit2: 2个换行符成为2个换行符 (更多补充,OP不断改变它)
查找(?:\t+|((?:[ ](?=[ ])|(?:\r?\n){2}))\1*)
替换$1
或\1
只需要1次通过,是最快的方式
答案 2 :(得分:1)
summary.replace(/([ \n\t])\1+/g, '$1');
或者如果你是所有空格字符
summary.replace(/(\s)\1+/g, '$1');
这样做效率更高,因为它只对字符串进行一次传递。