1 我们查看源代码之后获得的网页文件如下图所示,一般都是href="/p-286018571.html"我们只要能提取到所有的"/p-XXXXXXXX.html"这样的东西,至于前面的http://www.docin.com则可以手动批量添加,甚至后面的.html也可以手动添加,我们只要得到一串数字就可以了。我们最终希望的是能够获取如下面的这种网址列表,最笨的办法就相当于我们一个一个点击打开,然后到IE地址栏去复制粘贴一样.当然这里我们讲如何使用软件提高效率.

http://www.docin.com/p-286018691.html

http://www.docin.com/p-286018692.html

http://www.docin.com/p-286018693.htmlhttp://www.docin.com/p-286018694.html

2 UE并没有提供查找并批量输出的功能,所以我们需要借助另外一个软件,Replace Pioneer。安装之后还是先打开文件,这里最好先做一个范例,我们只拿最典型的一部分,并保存为txt格式。

3 运行Ctrl+H,打开替换面板。在Search for pattern里面输入"[0-9]{9}",其中"[0-9]"表示只匹配数字,"{9}"表示匹配次数,这里匹配9次。正好和所有的文档的超链接相同。在Replace with pattern里面输入"$match\n",含义是匹配但是不改写,因为我们一般的查找和替换是把所有要查找的替换为一个东西,这里我们查找到了所有东西但是并不替换,只是保留。注意去掉Print unmatched units,这个选项是指输出不匹配的东西,我们不要输出不匹配的东西,所以不勾选。后面的Regular Expression表示使用正则表达式,需要勾选。然后点击Replace,In Page和Out Page表示输入页面和输出页面。

4 可以发现的确获取到了我们需要的东西。

5 但是这样做不太严谨,因为可能我们以后查找的文件里面正好有九个数字,但是并非跟在p-后面,在.html前面。所以我们还需要改进正则表达式的匹配模式。如下图所示,我们需要过滤掉下面的东西。

7 在匹配模式中加入前缀/p和后缀.html发现的确也奏效了,过滤掉了我事先放进去的干扰。(这里需要说明,这个正则表达式并非在哪里都奏效,比如刚才的UE软件,只能匹配"/p-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].html"而不能匹配"/p-[0-9]{9}.html",每个软件的正则表达式还不一样。)

8 然后就是批量添加前缀了。其实很简单,在每个行首/p的前面加上http://www.docin.com,结果在P2页面中显示。

9 最后就是保存了,按Ctrl+S保存,我保存为test.txt文件。

10 操作真实的网页文档是否也奏效呢?从结果可以发现,的确是100个,这个和我们在一开始"每页显示一百个"是吻合的,所以应该没有多余的和漏掉的网址。举一反三,以此类推,我们去批量获取电子邮件地址,QQ号,手机号,身份证号,邮政编码,IP地址都只需要稍微改改正则表达式的规则即可.

如何使用Replace Pioneer批量查找和替换并提取指定字符串的更多相关文章

  1. Linux 批量查找并替换文件夹下所有文件的内容

    1.批量查找某个目下文件的包含的内容 cd etc grep -rn "查找的内容" ./ 2.批量替换某个目下所有包含的文件的内容 cd etc sed -i "s/查 ...

  2. PyCharm中批量查找及替换

    选中需要操作的字符 Ctrl + R 替换 Ctrl + Shift + F 全局查找 Ctrl + Shift + R 全局替换 源自: PyCharm中批量查找及替换 - Ella_Wu - 博客 ...

  3. Linux批量查找与替换

    Linux批量查找并替换文件夹下所有文件的内容 经常要使用到 Linux的批量查找与替换,这里为大家介绍使用 sed 命令和 grep 命令的结合来实现查找文件中的内容并替换. 语法格式: sed - ...

  4. Linux 文本处理批量查找与替换

    # 搜索含有特定字符串在某个目录并打印出文件名grep -rl "www.baidu.com" /data* -r, --recursive like --directories= ...

  5. bat批处理 查找替换:批处理如何查找并替换文本里特定字符串中的部分内容

    批处理如何查找并替换文本里特定字符串中的部分内容 摘自:http://www.bathome.net/thread-43349-1-1.html 脚本如下: @if()==() echo off &a ...

  6. 使用 sed 命令查找和替换文件中的字符串的 16 个示例

    当你在使用文本文件时,很可能需要查找和替换文件中的字符串.sed 命令主要用于替换一个文件中的文本.在 Linux 中这可以通过使用 sed 命令和 awk 命令来完成. 在本教程中,我们将告诉你使用 ...

  7. 使用replace pioneer批量修改文件名

    shell的正则表达式还是很难记忆的,也没有沉静的心情看文档,于是使用了replace pioneer. 1.  启动replace pioneer,Tools->batch runner  , ...

  8. Office WORD EXCEL批量查找和替换技巧实例

    1 删除多余的空行 如果是在WORD中,则查找^p^p替换为^p.   如果是在EXCEL里,则为全部选中,然后点击编辑,定位,定位条件,空值. 将全部选中空白的行,如图所示 再次点击编辑,删除,删除 ...

  9. 结合find和cp批量查找文件并复制到指定文件夹中

      find . -name JA1_*001_027 | xargs -i cp {} F:/ 说明: . 表示当前文件夹及其子文件夹中查找 -name 指定待查找文件,可以使用通配符 F:/ 表示 ...

随机推荐

  1. ASP.NET 构建高性能网站 第4篇

    部署优化 我们都知道,不同的部署方式对站点的性能是有影响的,可能有些朋友已经知道了这点,不管怎样,我们这里还是详细系统的讲述一下这个问题,熟悉的朋友权当回顾J. Release方式编译项目 如果我们的 ...

  2. angular 自定义指令参数详解【转】【个人收藏用】

    restrict:指令在dom中的声明形式 E(元素)A(属性)C(类名)M(注释) priority优先级:一个元素上存在两个指令,来决定那个指令被优先执行 terminal:true或false, ...

  3. mysql-debug

    http://www1.huachu.com.cn/read/readbookinfo.asp?sectionid=1000002778 http://hedengcheng.com/?p=238 h ...

  4. GlobalGetAtomName GlobalDeleteAtom 引用 WinAPI: AddAtom、DeleteAtom、FindAtom、GetAtomName、GlobalAddAtom、GlobalDeleteAtom、GlobalFindAtom、GlobalGetAtomName

    http://www.cnblogs.com/del/archive/2008/02/28/1085124.html 这是储存字符串的一组 API.通过 AddAtom 储存一个字符串, 返回一个 I ...

  5. [Node.js]OS模块

    摘要 Node.js有很多工具模块,比如os,path,net,dns,domain模块.这里先介绍os模块的使用方法.os模块提供了一些基本的系统操作函数. os模块 引入os模块 var os=r ...

  6. C++ 模板的编译 以及 类模板内部的实例化

    在C++中.编译器在看到模板的定义的时候.并不马上产生代码,仅仅有在看到用到模板时,比方调用了模板函数 或者 定义了类模板的 对象的时候.编译器才产生特定类型的代码. 一般而言,在调用函数的时候,仅仅 ...

  7. .NET:CLR via C# Primitive Thread Synchronization Constructs

    User-Mode Constructs The CLR guarantees that reads and writes to variables of the following data typ ...

  8. go test 单元函数测试

    首先安装单元测试包,go get github.com/smartystreets/goconvey/convey 源程序如下,定义了加减乘除4个函数 package test222 import ( ...

  9. struts2 select标签

    headerValue : 默认值value headerKey : 默认name list : 源数据 (可以在action方法里从数据库获取list) name : 被选数据存放的位置(这里我方在 ...

  10. IIS HTTPS 禁用不安全的SSL2.0

    禁用: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols 验证: