问题复现

拿到的文档中包含了大量的\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. [Linux] Desktop Management

    xrandr --output Virtual1 --mode 1360x768 Extend Display Size

  2. 【Ubuntu 16】源码包安装Apache Httpd

    源码包安装适合初学者使用. 背景信息 APR (Apache Portable Runtime) Apache可移植运行的任务(APR)项目是创建和维护软件库,为底层平台的具体实现提供了一个可预见的和 ...

  3. 【BZOJ3262】陌上花开 (CDQ分治+树状数组+排序)

    Time Limit: 3000 ms   Memory Limit: 256 MB Description 有n朵花,每朵花有三个属性:花形(s).颜色(c).气味(m),用三个整数表示. 现要对每 ...

  4. spring boot / cloud (一) 使用filter防止XSS

    spring boot / cloud (一) 使用filter防止XSS 前言 XSS(跨站脚本攻击) 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading ...

  5. APUE 1 -- Unix数据结构

    Unix 类操作系统支持不同进程间共享文件.对于所有的I/O,内核使用3种数据结构来表示一个打开的文件. 进程表.每个进程在进程表中有其相应的入口.文件结构中,每个进程表的入口是文件描述符表,每个文件 ...

  6. redis 安装及启动关闭

    1.redis下载 方式1:直接去官网下载 https://redis.io/download 方式2:通过命令下载 wget http://download.redis.io/releases/re ...

  7. ruby开发环境搭建

    ruby开发可以在max os .Linux系统或windows下进行.推荐使用linux系统,这里以在linux系统下搭建开发环境为例.大体上需要以下几步: 一.下载并安装virtualbox和ub ...

  8. 题目1522:包含min函数的栈

    #include <iostream> #include <cstdio> #include <stack> using namespace std; int ma ...

  9. ConcurrentHashmap中的size()方法简单解释

    本文所有的源码都是基于JDK1.8 ConcurrentHashmap中的size()方法源码: public int size() { long n = sumCount(); return ((n ...

  10. .NET Core多平台开发体验[2]: Mac OS X

    除了微软自家的Windows平台, .NET Core针对Mac OS以及各种Linux(RHEL.Ubuntu.Debian.Fedora.CentOS和SUSE等)都提供了很好的支持,我们先来体验 ...