九齿耙(Ninerake)数据采集大数据深度学习智能分析Python爬虫软件的正则表达式规则简介
正则表达式易于使用,功能强大,可用于复杂的搜索和替换以及基于模板的文本检查。这对于输入形式的用户输入验证特别有用-验证电子邮件地址等。您还可以从网页或文档中提取电话号码,邮政编码等,在日志文件中搜索复杂的模式,然后您就可以想象得到。九齿耙(Ninerake)数据采集大数据深度学习智能分析爬虫软件支持用户自定义正则表达式而无需重新编译程序即可更改规则(模板)。
简单比赛
任何单个字符都匹配自己。
一系列字符与输入字符串中的那一系列字符匹配。
正则表达式 | 火柴 |
---|---|
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
。