0
点赞
收藏
分享

微信扫一扫

python爬虫-正则表达式

腾讯优测 2022-01-16 阅读 171

1.基本字符

1.1 行定位符

行定位符用来描述字符串的边界。以字符串’hello world’为例

表示行的开始
如^hello world 可以匹配到 ‘hello world xxxxxxxxxxxxx’。但匹配不到’xxxxxxxxxxxxx hello world’

表示行的结束
如hello world$ 可以匹配到’xxxxxxxxxxxxx hello world’。但匹配不到 ‘hello world xxxxxxxxxxxxx’

无行定位符则表示可以在任意部分匹配。


1.2 元字符

字符功能
.匹配除换行符外的任意字符
\w匹配字母、数字、下划线或汉字
\W匹配除字母、数字、下划线或汉字以外的字符
\s匹配任意空白字符
\S除单个空白字符(包括Tab键和换行符)以外的所有字符
\d匹配数字
\D任意非数字
\A从字符串开始处开始匹配
\Z从字符串结束处开始匹配
\b匹配一个单词的边界,单词的分解符通常是空格、标点符号或者换行
\B匹配非单词边界
^匹配字符串的开始
$匹配字符串的结束
()被括起来的表达式将作为分组

1.3限定符

限定符功能示例
?匹配前边的字符串0次或1次hello?world可以匹配hellworld和helloworld
+匹配前边的字符串1次或多次hello+world可以匹配helloworld到hellooooooo…world
*匹配前边的字符串0次或1次或多次hello*world可以匹配hellworld和helloworld到helloooo…world
{n}匹配前边的字符串n次hello{3}world可以匹配helloooworld
{n,}匹配前边的字符串至少n次hello{3,}world可以匹配helloooworld到hellooooo…world
{n,m}匹配前边的字符串至少n次,至多m次hello{3,10}world可以匹配helloooworld到hellooooooooooworld

1.4字符类

使用方括号[]

  • [abcdef]表示匹配字母abcdef中的任意一个
  • [a-z]表示匹配任意一个小写字母
  • [A-Z]表示匹配任意一个大写字母
  • [0-9]表示匹配任意一个数字
  • 在只考虑英文的情况下,[a-z0-9A-z]则完全等同于\w
  • 如果想匹配任意一个汉字,可以用[\u4e00-\u9fa5]

1.5排除字符

将^符号放在方括号中,表示排除的意思。

该表达式用于匹配任何一个不是字母的字符


1.6选择字符

选择字符使用 | 符号来实现,可以理解为逻辑“或”

如 (^\d{18}$)|(^\d{17}(a|X|x))
此正则表达式表示匹配18位的数字,
或者前17位为数字且第18位为a、X或x 的18位字符

1.7转义字符

即同python中的转义字符 \ 符号。将特殊字符转化为普通字符。

1.8分组

即使用小括号 ( )。

举报

相关推荐

0 条评论