由一次取消空行来看windows下的换行与正则匹配

今天拿到一分有多余空行的js文件,

准备使用正则表达式来删除空行。

没有删除空行前是这样的:

没有删除空行前
在notepad++中使用正则\r\n替换后,竟然是这样的:

删除后是这样的

这不对啊,怎么糊成一坨了啊,

我明明只想删除空行来着。

我意识到可能是windows下的回车换行问题,赶快去百度了下,

结果越看越迷糊,

有人说换行是 \r\n

有人说是 \n\r

runoob上提供的删除空行的正则表达式为:\n\s*\r

经过实测,删除空行的这个正则表达式是正确的,删除后的效果如图:

删除后的效果图

又经过一番测试我发现,

按下回车正确代表的是 \r\n

假设:

第 1 行有文字的,是以\r\n结尾,

第 2 行空行,以\r\n结尾,

第 3 行有文字,以\r\n结尾。

因此,以正则匹配\n\s*\r时,

删除了第1行结尾的\n,

删除了第2行的空白,包括任何空白字符,包括空格、制表符、换页符等,

删除了第2行结尾的\r,

剩下的就是第1行的\r和第2行的\n,组合成新的换行符\r\n

这样就正确实现了删除空白行的需求了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值