正则表达式基础

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

一、匹配单个字符

[0-9]:匹配任意数字

[a-z]:匹配任意小写字母

[A-Z]:匹配任意大写字母

[0-9a-zA-Z]:匹配所有数字和字母

\:转义

^:取反,如[^au]匹配不包含au的

\w:匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’

\W:匹配任何非单词字符。等价于 ‘[^A-Za-z0-9_]‘

\d:匹配一个数字字符。等价于 [0-9]

\D:匹配一个非数字字符。等价于 [^0-9]。

\s:匹配空白,包括空格,tab,换行

\b:匹配单词边界,如\bapple\b——>apple

^字符串开始,$字符串结束,^python$——>python

.:匹配除 “\n” 之外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符, ‘[.\n]’ 的模式

?:指定一个字符或字符组,匹配它之前的字符0次或1次,如匹配 favorite和favourite这两种写法,favou?rite

二、匹配多个字符

{N}:它之前的字符出现N次,如匹配电话号码\d{4}-\d{7}

{M,N}:重复区间,M次到N次,正则是贪婪模式,优先匹配更多的,要用非贪婪模式{M,N}?

{M,}:开闭区间

+:匹配一个到无数个,{1,}

*:匹配0到无数个{0,}

.*?:爬虫经常会用到的一种匹配方法,表示非贪婪模式,匹配尽可能少的任意字符

\d+:也是爬虫常用的,匹配数字,如果数字用.*?匹配不到,可以用这个

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容