八爪鱼·云采集网络爬虫软件
www.bazhuayu.com
正则表达式使用工具教程
正则表达式-教程
正则表达式是烦琐的,但是它是强大的,在八爪鱼中,学会正则表达式的应用能让你的数据展示更加规范化,所提取数据字段表达更加精准。合理的运用正则,除了提升你的数据展示规范、字段表达精准之外,还会给你带来绝对的成就感。只要认真阅读本教程,结合八爪鱼正则表达式工具实战应用,掌握正则表达式是非常容易的。
内容列表:
11.1正则表达式-简介 11.2正则表达式-简单示例
11.3-正则表达式-八爪鱼正则工具 11.4正则表达式-语法
11.5正则表达式-正则表达式及简单应用
11.1正则表达式-简介
正则表达式(Regular Expression),按英文直译是“规范化表达”,其作用是将复杂模糊的源数据通过正则表达式转化为简单直观的目标数据。例如:
“150ABCD” “一百五ABCD”
“One hundred and fiftyABCD”
分析思考过程: 以上字符串中,我们的源文本数据分别为:““150ABCD”、“一百五ABCD”、“One hundred and fiftyABCD”
假设我们要提取目标数据为:字符串中以数字开头的数据 那么我们约束条件为:只取字符串中以数字开头的源数据 将此约束条件转化为正则表达式为:[0-9](.+)\\b
其中,[0-9]的语义为开头1位为0-9开头,中间间隔以通配符“.”代替,(.+)语义为字符串长度不做限定,\\b的语义为,匹配一个边界。 正则后的目标数据:“150ABCD”
通过这个简单例子,我们大致了解到了为什么要用正则与正则所能实现的效果,讲通俗点就是,正则只是将我们的意愿(提取字符串中以数字开头的数据)以表达式的形式展现出来([0-9](.+)\\b),并最终通过表达式匹配到所需要的目标数据(“150ABCD”),所以灵活运
八爪鱼·云采集网络爬虫软件
www.bazhuayu.com
用正则,可以通过简单的方法实现强大的功能。
为什么要在八爪鱼中使用正则?
在八爪鱼采集数据过程中,受限于网页HTML结构的原因,部分目标数据并不能单独提取出来,这时需要简单的搜索与替换操作来提取与预期搜索结果匹配的确切文本,除此之外,对数据要求精准规范的用户,还能通过正则表达式测试所提取数据字符串的模式、替换文本、基于匹配模式从字符串中提取子字符串等操作。 例如:
匹配字符串内模式:
1.查看字符串是否出现电话号码模式 2.查看字符串是否出现网址URL模式 替换文本:
1.用正则表达式识别字符中特定文本
2.用正则表达式完全删除该文本或用其他文本替换它 基于匹配模式从字符串中提取子串 1.用于查找字符串文本内特定文本
11.2正则表达式-简单示例
11.匹配任何空白字符,包括空格、制表符、换页符等 正则表达式:\\s+
图 11.2-1 示例1
八爪鱼·云采集网络爬虫软件
www.bazhuayu.com
2.匹配源文中1-9开头,1-9结尾,中间长度为9的字符串 正则表达式:[1-9].{9}[1-9]
图 11.2-2 示例2
3.匹配源文本中http开头,com结尾,中间长度任意的字符串 正则表达式:http(.+)com
八爪鱼·云采集网络爬虫软件
www.bazhuayu.com
图 11.2-3 示例3
4.匹配源文本中汉字八爪鱼 正则表达式:八爪鱼采集器
八爪鱼·云采集网络爬虫软件
www.bazhuayu.com
图 11.2-4 示例4
5.综合运用
假设一个源文本中包含空白字符、数字,那么我们的思路大致如下: 1.利用\\s+去除空白字符干扰
图 11.2-5 综合运用1
2.利用[0-9].{4}[0-9]匹配所想要的数字