python学习笔记-tip56(正则表达式)

前言

还记得我第一份工作,是做数据采集、数据处理,其中数据采集的工作就是利用爬虫去爬取 相关网站的一些特殊字段,爬虫需要用「正则表达式」来对我想采集的 "特殊的字段" 进行匹配,匹配成功,则将该字段存储到本地的数据库,然后接着轮询。

现在还是挺想念第一家公司的...

好了,今天先把正则表达式的一些特殊的规则先列举一下吧

正则的规则

正因为想要对 ”一些特殊的字段“ 进行匹配,然后加以利用,所以就有了「正则表达式的概念」,比如我们通常使用 /w 匹配一个字母或数字,使用 /d 匹配一个数字,等等很多,现在一一列举一下。

  • .(点) : 任意字符
  • /w : 一个字母或者数字
  • /d : 一个数字
  • /s : 一个空格
  • [a-z] : 一个小写字母
  • [A-Z] : 一个大写字母
  • [a-zA-Z] : 一个字母
  • [0-9] : 一个数字,同 /d
  • /- : 中划线
  • /_: 下划线
  • // : 斜杠
  • 其他特殊符号需要通过 / 使之成为转义字符

以上都是单个符号,字母,数字,怎么体现n个呢

  • + :表示0个或者多个
  • ? : 表示0个或者1一个
  • * : 表示0个或者多个,即任意个
  • {n} : 表示指定个数个,比如 {2} 表示两个
  • {n,m} :表示n个到m个,比如{2-5} 表示可以有2,3,4,5个

或者关系

  • | :比如 b|B 就表示 b 或者 B

行的开头

  • ^ : 如果使用了行的开头,那么其实就是限定了开头的规则,比如 ^\d 就表示 开头必须是一个数字

行的结尾

  • $ : 如果使用了行的结尾,那么就是规定了结尾的规则,比如 \_$ 就表结尾必须是下划线

ok ,大致规则就是这样喽,那么下面我们先来看几个复杂的「正则表达式」来练练手

练练手

题目:\d{3}\s+\d{3,8}

答:3个数字 至少一个空格 3-8位的数字
比如 012 1234 这样的数字就是匹配的。

几个常用的正则表达式

  • [0-9a-zA-Z\_] 可以匹配任意一个字符,数字或者一个下划线
  • [0-9a-zA-Z\_]+ 可以匹配至少由一个字符,数字,或者下划线组成的字符串
  • [0-9a-zA-Z\_][0-9a-zA-Z]*\ 可以匹配由一个字符、数字或者下划线开头,后边任意个由字母、数字、下划线组成的字符串,也就是python合法的变量命名

总结

正则表达式很简单,只需要记得上面列举的那些特殊字符即可,是不是很简单,赶快写一个手机号码的正则吧~~

你可能感兴趣的:(python学习笔记-tip56(正则表达式))