问题复现

拿到的文档中包含了大量的\r\n\t等字符,形如:

\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n <title>历史账单</title>\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<script type="text/javascript" src="/pages/js/jquery-1.11.3.min.js"></script>\r\n<script type="text/javascript" src="/cms/up3/js/jquery.flashSlider-1.0.min.js"></script>\r\n<script type="text/javascript" src="/cms/up3/js/common.js"></script>\r\n<script type="text/javascript" src="/cms/up3/js/jcarousellite_1.0.1.js"></script>\r\n<script type="text/javascript" src="/cms/up3/js/jquery-mylazyload.js"></script>\r\n\r\n\r\n<script type="text/javascript">var ctx = "";</script>\r\n<script type="text/javascript">\r\n\tfunction $(element){\r\n\t\treturn element = document.getElementById(element);\r\n\t}\r\n\r\n\tfunction valiWhiteList(accnbr){\r\n\t\tvar rs;\r\n\t\tjQuery.ajax({\r\n\t\t\ttype : "POST",\r\n\t\t\turl : "/validateWhiteList.action",\r\n\t\t\tasync: false,\r\n\t\t\tdata : "accnbr="+accnbr,\r\n\t\t\tdataType : "text",\r\n\t\t\tsuccess : function(ret){\r\n\t\t\t\tvar values = jQuery.trim(ret);\r\n\t\t\t\tif(values=="0"){\r\n\t\t\t\t\trs = true;\r\n\t\t\t\t}else{\r\n\t\t\t\t\trs = false;\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn rs;\r\n\t}\r\n</script>\r\n\r\n\t\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n<script type="text/javascript" src="/pages/js/jquery.js"></script>\r\n<script type="text/javascript" src="/pages/js/divselect.js"></script>\r\n\r\n\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t<script type="text/javascript" src="/pages/js/selfservice/feesquery/MyFeesQuery.js"></script>\r\n\r\n\r\n\r\n\r\n\r\n

看起来乱糟糟的,很不直观。

问题分析

简单的说是应该在Windows下与Linux下对换行的表示不一样导致的。详细的可以参考这篇文章linux下与windows下的换行符。这里不做过多的探究。我们只需要把这些字符替换成Linux中对应的表示即可。

问题解决

上面的问题多处于Linux机器上,我们使用Vim来进行处理。步骤如下:

  1. 把有如上问题的文档丢进Vim编辑器
  2. Vim中使用如下命令来处理\r\n,替换成正常的换行

    :1,$s/\\r\\n/\r/g
  3. 同样的方式处理\t,将至替换成四个空格

    :1,$s/\\t/    /g

方法详解

上面的解决方法是利用Vim的替换功能将字符替换成对应的正确的表示。其中:

1,$s/

表示从第一行到最后一行开始匹配,匹配的内容是后面的正则。

/\\r\\n/\r/g

这里是一个正则以及要替换的内容。遵循这样的格式:/要正则匹配的部分/要替换成的部分/g

参考资料

vim下处理文档中的\r\n\t字符的更多相关文章

  1. 详解在Word文档中常见的各种公式编辑问题

    正常情况下,我们在安装完成MathType之后会直接加载在Word文档中,Word文档中的MathType比较复杂,新手操作遇到麻烦也是常有的事,今天就来给大家详解下Word文档中常见的MathTyp ...

  2. C# 在word文档中复制表格并粘帖到下一页中

    C# 在word文档中复制表格并粘帖到下一页中 object oMissing = System.Reflection.Missing.Value;            Microsoft.Offi ...

  3. MVC架构下,使用NPOI读取.DOCX文档中表格的内容

    1.使用NPOI,可以在没有安装office的设备上读wiod.office.2.本文只能读取.docx后缀的文档.3.MVC架构中,上传文件只能使用form表单提交,转到控制器后要依次实现文件上传. ...

  4. Java解析word,获取文档中图片位置

    前言(背景介绍): Apache POI是Apache基金会下一个开源的项目,用来处理office系列的文档,能够创建和解析word.excel.ppt格式的文档. 其中对word文档的处理有两个技术 ...

  5. 一个简易的Python爬虫,将爬取到的数据写入txt文档中

    代码如下: import requests import re import os #url url = "http://wiki.akbfun48.com/index.php?title= ...

  6. Java课程课后作业190315之从文档中读取随机数并得到最大连续子数组

    从我上一篇随笔中,我们可以得到最大连续子数组. 按照要求,我们需要从TXT文档中读取随机数,那在此之前,我们需要在程序中写入随机数 import java.io.File; import java.i ...

  7. 处理Word文档中所有修订

    打开现有文档进行编辑 若要打开现有文档,您可以将 Word类实例化,如以下 using 语句所示. 为此,您可以使用Open(String, Boolean) 方法打开具有指定 fileName 的字 ...

  8. [No0000190]vim8安装教程和vim中文帮助文档Vimcdoc安装方法-Vim使用技巧(5)

    Vim8.0是近十年来的一次大更新,支持任务.异步I/O.Channels和JSON以及异步计时器.Lambdas 和 Closures等,还包括对GTK + 3的支持.由于ubuntu默认安装的Vi ...

  9. php解析word,获得文档中的图片

    背景 前段时间在写一个功能:用原生php将获得word中的内容并导入到网站系统中.因为文档中存在公式,图片,表格等,因此写的比较麻烦. 思路 大体思路是先将word中格式为doc的文档转化为docx, ...

随机推荐

  1. GC选择之串行收集与并行收集

    GC 串行收集器 (古老 稳定 会有较长时间停顿)-XX:+UseSerialGC 新生代.老年代串行回收,新生代复制算法.老年代标记-压缩算法 并行收集器 ParNew (多核时性能比较好) Ser ...

  2. Office办公软件(Excel PPT Word)使用整理

    Office办公软件(Excel PPT Word)使用整理.. -------------- Excel默认打印预览于当前连接的打印机的纸张大小保持一致. Excel sheet不见了怎么办 --- ...

  3. Nodejs进阶:使用DiffieHellman密钥交换算法

    ## 简介 Diffie-Hellman(简称DH)是密钥交换算法之一,它的作用是保证通信双方在非安全的信道中安全地交换密钥.目前DH最重要的应用场景之一,就是在HTTPS的握手阶段,客户端.服务端利 ...

  4. jQuery菜单示例(全选,反选,取消)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. [2012-08-21]FreeBSD9.0体验记

    最近在看<构建高可用Linux服务器> 由于对FreeBSD的稳定性仰慕已久,正好参照该书的指导进行体验一二. 先感谢下该书作者余大大,同时做个声明:本文中若有命令脚本涉及版权问题,请与p ...

  6. linux Module驱动开发-一切刚刚开始

    linux内核是可以高度定制的,通过配置编译选项达到定制的目的. 在配置kernel编译选项时驱动程序的编译选项一般有三种,不编译.编译为内核驱动.编译为模块驱动.所以linux驱动一般分为两类,内核 ...

  7. 汇编指令-str存储指令(4)

    str -(Store Register)存储指令 格式:str{条件}  源寄存器,<存储器地址>将源寄存器中数据存到存储器地址中. 实例1: str   r1,[r2]        ...

  8. System.Globalization.CultureInfo.InvariantCulture 解决不同地域字符串格式不同问题

    同样的DateTime.ToShortDateString()   在不同的地域输出格式不同 如在美国的 日期格式为 :  月-日-年 如在中国的 日期格式为 :  年-月-日 一些时候,这个格式就会 ...

  9. asp.net core 2.0 web api基于JWT自定义策略授权

    JWT(json web token)是一种基于json的身份验证机制,流程如下: 通过登录,来获取Token,再在之后每次请求的Header中追加Authorization为Token的凭据,服务端 ...

  10. iOS ipa包瘦身------删除无用图片资源

         随着客户端业务的增多和业务的更新,App包大小越来越大,优化包大小是迫在眉睫,客户端需要优化的地方也有很多,本期主要讲如何查找无用图片并且删除无用图片的方法.      方案1:(暴力方法) ...