八爪鱼·云采集网络爬虫软件
www.bazhuayu.com
图 11.2-6 综合运用2
源文本由空白字符、数字、字母、汉字等各种字符组合而成,理解本章示例,合理运行正则表达式,举一反三,对八爪鱼格式化处理数学的学习有良好的促进作用。
八爪鱼·云采集网络爬虫软件
www.bazhuayu.com
11.3正则表达式-八爪鱼正则工具
在八爪鱼中,为了方便广大用户,我们提供正则工具,用于方便快速的生成正则表达式,在运用时,用户不需要太深入了解正则,只需要明白其常生成的表达式意义并学会灵活修改部分表达式即可。
图 11.3-1 正则表达式界面
源文本:源数据,待处理的数据 开始:所需要匹配字符串的开头
包含开头:正则表达式匹配后的结果是否包含开头 结束:所需匹配字符串的结尾
包含结束:正则表达式匹配后结果是否包含结束 包含一个:是否字符串中包含某字符
八爪鱼·云采集网络爬虫软件
www.bazhuayu.com
图 11.3-2 简单示例一
源数据:A123B
八爪鱼生成表达式:A(.+?)2{1}(.+?)B
A(.+?):在后面语法章节我们会讲,此处解意为:以A开头,()存放的是子表达式:.+?,\为正则中的通配符,\为至少匹配一次或多次,\即只匹配至多一次 2{1},此处表示匹配2,而且加了限定符\限定了2的次数为1 (.+?)B:子表达式:.+?与上面相同,结尾为B
八爪鱼·云采集网络爬虫软件
www.bazhuayu.com
图 11.3-2 简单示例二
此处与图11.3-2,只有包含不包含的区别,释义如下:
(?<=A):此处术语为零寬断言,理解为开头不包含,其中(?=)是反向引用,表示缓存但是不利用,意思是虽然匹配到A,但是匹配结果不显示A (?=B):反向引用,匹配但是结果不显示B
八爪鱼·云采集网络爬虫软件
www.bazhuayu.com
图 11.3-3 简单示例非贪婪
图11.3-3,正则表达式中子“(.+?)”,由于?的限定,虽然源文本中含有两个字串“A123B”,但是“?”限定了只能匹配0次或者1此处,所以匹配结果只有“123”