问题复现

拿到的文档中包含了大量的\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. Windbg查看调用堆栈(k*)

            无论是分析程序崩溃原因,还是解决程序hang问题,我们最常查看的就是程序调用堆栈.学会windbg调用堆栈命令,以及理解堆栈中的各个参数的意义就显得至关重要. 上图就是一个典型的Win ...

  2. jumpserver V0.4.0 在CentOs7上的安装

    基于 CentOS 7 一步一步安装 Jumpserver 0.4.0 环境 系统: CentOS 7 IP: 192.168.226.128 一. 准备Python3和Python虚拟环境 1.1 ...

  3. Spring(二)--FactoryBean、bean的后置处理器、数据库连接池、引用外部文件、使用注解配置bean等

    实验1:配置通过静态工厂方法创建的bean  [通过静态方法提供实例对象,工厂类本身不需要实例化!] 1.创建静态工厂类 public class StaticFactory { private st ...

  4. canvas粒子系统的构建

    前面的话 本文将从最基本的imageData对象的理论知识说开去,详细介绍canvas粒子系统的构建 效果演示 下面是实例效果演示,博文结尾有全部源码 imageData 关于图像数据imageDat ...

  5. 获取当前页面URL信息

    文章链接:http://www.cnblogs.com/hongmaju/p/5510988.html 查看信息可以在控制台输出(tab或者右移补全): 如:document.URL  window. ...

  6. python_控制台输出带颜色的文字方法

    在开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中.而一般的应用服务器,第三方库,甚至服务器的一些通告也会在终端中显示,这样就搅乱了我们想要的信 ...

  7. Spring MVC请求执行流程

    学习Spring MVC时间有点长了,但是最近打算找工作,需要重新了解下,所以又去温故知新了.Spring MVC就是用来写web的框架,简化你写web的一些不必要的流程,让程序员能专注于业务逻辑也就 ...

  8. python进阶学习(二)

    本节学习图形用户界面 ------------------------ 本节介绍如何创建python程序的图形用户界面(GUI),也就是那些带有按钮和文本框的窗口.这里介绍wxPython : 下载地 ...

  9. python条件判断与循环

    条件判断 1.python缩进规则: 如果if语句判断是True,就把缩进的语句执行了,否则,什么也不做,比如: age=20 if age >= 18: print('your age is' ...

  10. 浅读K-means

    百度百科释义为 K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则.K-means算法以 ...