博客
关于我
Python九齿耙(Ninerake)数据采集大数据深度学习智能分析爬虫软件的正则表达式规则简介
阅读量:265 次
发布时间:2019-03-01

本文共 1745 字,大约阅读时间需要 5 分钟。

正则表达式易于使用,功能强大,可用于复杂的搜索和替换以及基于模板的文本检查。这对于输入形式的用户输入验证特别有用-验证电子邮件地址等。您还可以从网页或文档中提取电话号码,邮政编码等,在日志文件中搜索复杂的模式,然后您就可以想象得到。支持用户自定义正则表达式而无需重新编译程序即可更改规则(模板)。

简单比赛

任何单个字符都匹配自己。

一系列字符与输入字符串中的那一系列字符匹配。

正则表达式 火柴
foobar foobar

不可打印字符(转义码)

要在正则表达式中表示不可打印的字符,请使用\x..

正则表达式 火柴
\xnn 十六进制字符 nn
\x{nnnn} 带有十六进制代码的字符nnnn(一个字节用于纯文本,两个字节用于Unicode)
foo\x20bar foo bar (注意中间的空格)

有很多escape-codes针对不可打印字符的预定义,就像C语言中一样:

正则表达式 火柴
\t 标签(HT / TAB),与 \x09
\n 换行(NL),与 \x0a
\r car.return(CR),与 \x0d
\f 换页(FF),与 \x0c
\a 警报(BEL),与 \x07
\e 转义(ESC),与 \x1b
\cx
控制转义序列(Ctrl-x
例如,\ci匹配目标序列
\x09,因为ctrl-i具有价值0x09

转义

如果您想单独使用字符\(而不是字符)escape-code,只需在字符前加上\,例如:\\

实际上,您可以在正则表达式中使用具有特殊含义的任何字符作为前缀(或escape\

正则表达式 火柴
\^FooBarPtr ^FooBarPtr
\[a\] [a]

角色类

用户角色类

字符类是其中的字符列表[]。该类别与该类别中列出的任何一个字符匹配。

正则表达式 火柴
foob[aeiou]r foobarfoober等,但不foobbrfoobcr等等

您可以invert在类-如果后的第一个字符[是 ^,那么类匹配任何字符,但在类中列出的字符。

正则表达式 火柴
foob[^aeiou]r foobbrfoobcr等,但不foobarfoober等等

在列表中,该-字符用于指定范围,因此 a-z表示介于a和之间的所有字符z(含)。

如果你希望-自己是一个类的成员,把它在列表的开始或结束,或用反斜杠它。

如果你想]作为类的一部分,您可以将其放置在列表的开头或用反斜杠它。

正则表达式 火柴
[-az] az-
[az-] az-
[a\-z] az-
[a-z] 从人物az
[\n-\x0D] 从人物#10#13

预定义字符类

有许多预定义的字符类,它们使正则表达式更加紧凑。

正则表达式 火柴
\w 字母数字字符(包括_
\W 非字母数字
\d 数字字符(与相同[0123456789]
\D 非数字
\s 任何空格(与相同)[ \t\n\r\f]
\S 一个非空间
\h
水平空白。标签和所有字符
在“空格分隔符” Unicode类别中。
\H 不是水平的空格
\v
垂直空白。所有字符均视为
Unicode标准中的换行符。
\V 不是垂直空格

您可以使用\w`\W\d\D\h\H\v\V\s\S字符串

正则表达式 火柴
foob\dr foob1rfoob6r等等,但不foobarfoobbr等等
foob[\w\s]r foobar,,等但不,等等foob rfoobbrfoob1rfoob=r

界线

线边界

正则表达式 火柴
^ 行首
$ 行结束
\A 文字开头
\Z 文字结尾
. 一行中的任何字符
^foobar foobar 只有在行的开头
foobar$ foobar 只有在行尾
^foobar$ foobar 仅当它是行中的唯一字符串时
foob.r foobarfoobbrfoob1r

^默认情况下,元字符与输入字符串的开头匹配。$- 结束。

但是,您可能希望将字符串视为多行文本,因此^将在字符串内的任何行分隔符之后匹配,并且$在任何行分隔符之前匹配。您可以通过切换修饰符/m来实现。

请注意,序列中没有空行\x0D\x0A

转载地址:http://fjro.baihongyu.com/

你可能感兴趣的文章
斐波纳契数
查看>>
MySQL InnoDB的可重复读(REPEATABLE-READ)是否解决了幻读(PHANTOM READS)问题
查看>>
软件项目管理(一)复习训练2
查看>>
Kotlin语言(黑马程序员) p21-p40
查看>>
线程(下)--线程通信&&消费者问题
查看>>
内部类
查看>>
Maven将本地jar打到本地仓库中
查看>>
SpringBoot集成Eureka
查看>>
Java 十大排序算法
查看>>
SQL触发器
查看>>
springboot运行时该注意的地方
查看>>
建立第一个SpringBoot小列子(碰到的错误)
查看>>
处理in查询的时候id超过1000,而报错
查看>>
Eclipse+Java+Swing实现学生成绩管理系统
查看>>
Python编辑器安装教程
查看>>
BZOJ3685: 普通van Emde Boas树
查看>>
懵逼ZJOI2016Round2滚粗记
查看>>
弹球距离(c语言递归)
查看>>
海盗分赃(8行代码搞定!)
查看>>
整型关键字的散列映射
查看>>