博客
关于我
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/

你可能感兴趣的文章
MongoDB_集合_创建_删除
查看>>
循环整形集合,用逗号拼成字符串的小锦囊~(去掉最后一个逗号)
查看>>
java:-source 1.6 中不支持 diamond 运算符
查看>>
单链表的查找、建立操作(C语言)
查看>>
Delphi 数据类型列表
查看>>
Delphi 选择文件之OpenDialog【并添加至Image】
查看>>
Vue v-for 循环
查看>>
并发控制
查看>>
A - 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历(BFS)
查看>>
L - 病毒扩散(暴力)
查看>>
2021-04-15
查看>>
free(): double free detected in tcache 2 如何解决
查看>>
c语言-单链表
查看>>
《软件方法》第1章 建模和UML
查看>>
Rhapsody的文件能转到EA里面吗
查看>>
《程序猿的第n+3天》bootstrap做收缩导航
查看>>
android instant app
查看>>
ubuntu非root用户如何访问vmware共享文件夹
查看>>
如何使用Postman保存请求和返回,离线查看请求数据
查看>>
系统架构
查看>>