
Python九齿耙(Ninerake)数据采集大数据深度学习智能分析爬虫软件的正则表达式规则简介
发布日期:2021-05-04 20:44:07
浏览次数:7
分类:技术文章
本文共 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 | foobar ,foober 等,但不foobbr ,foobcr 等等 |
您可以invert
在类-如果后的第一个字符[
是 ^
,那么类匹配任何字符,但在类中列出的字符。
正则表达式 | 火柴 |
---|---|
foob[^aeiou]r | foobbr ,foobcr 等,但不foobar ,foober 等等 |
在列表中,该-
字符用于指定范围,因此 a-z
表示介于a
和之间的所有字符z
(含)。
如果你希望-
自己是一个类的成员,把它在列表的开始或结束,或用反斜杠它。
如果你想]
作为类的一部分,您可以将其放置在列表的开头或用反斜杠它。
正则表达式 | 火柴 |
---|---|
[-az] | a ,z 和- |
[az-] | a ,z 和- |
[a\-z] | a ,z 和- |
[a-z] | 从人物a 到z |
[\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 | foob1r ,foob6r 等等,但不foobar ,foobbr 等等 |
foob[\w\s]r | foobar ,,等但不,等等foob r foobbr foob1r foob=r |
注
界线
线边界
正则表达式 | 火柴 |
---|---|
^ | 行首 |
$ | 行结束 |
\A | 文字开头 |
\Z | 文字结尾 |
. | 一行中的任何字符 |
^foobar | foobar 只有在行的开头 |
foobar$ | foobar 只有在行尾 |
^foobar$ | foobar 仅当它是行中的唯一字符串时 |
foob.r | foobar ,foobbr ,foob1r 等 |
^
默认情况下,元字符与输入字符串的开头匹配。$
- 结束。
但是,您可能希望将字符串视为多行文本,因此^
将在字符串内的任何行分隔符之后匹配,并且$
在任何行分隔符之前匹配。您可以通过切换修饰符/m来实现。
请注意,序列中没有空行\x0D\x0A
。
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年04月05日 11时32分20秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Delphi 10.3 应用程序获取自身所在的目录文件夹名称
2019-03-01
Delphi SQL 查询数据表中规定的时间段内按天统计出每天的记录数
2019-03-01
从Android JAR文件创建Delphi接口的第三方工具
2019-03-01
Kotlin实现冒泡排序
2019-03-01
C#控制台冒泡程序
2019-03-01
NodeJS下TypeScript环境安装
2019-03-01
汽车后市场,小程序为何独占鳌头
2019-03-01
宠物行业蓝海,APP如何突出重围?
2019-03-01
短视频小程序,互联网新风口
2019-03-01
彻底弄懂Python标准库源码(一)—— os模块
2019-03-01
从零开始免费搭建自己的博客(七)——迁移 CSDN 博客到个人博客站点
2019-03-01
RF新手常见问题总结--(基础篇)
2019-03-01
spring框架读取json文件为字符串 推荐第一种
2019-03-01
SpringBoot配置文件中的值获取
2019-03-01
Mybatis-plus代码生成器模板(MySQL数据库)
2019-03-01
使用redis管理Mybatis的二级缓存
2019-03-01
使用redis管理Mybatis-Plus的二级缓存
2019-03-01
Spring Boot常用的maven依赖
2019-03-01