正则表达式的元字符

Zss 发表于:

在做一些信息筛选的时候,使用re来匹配文本应该是最为强大了的吧

在写爬虫的时候需要筛选html中的一些信息,譬如:某些链接它可能藏在了href中,某一些文本信息藏在了text中,等等

那么咱们是有几种方式来取出来,譬如使用美丽汤的模块来取,或者转换成xml使用xpath来取,再者直接使用正则表达式来匹配

按照性能来排行re大于xpath大于美丽汤,难度来说也就是re大于xpath大于美丽汤了

我想这远不止是正则表达式的作用,对于文本的过滤它应该是最强大的吧

一个正则表达式的测试工具:regextester

 

一.元字符

(1) .       除换行符以外的任意字符

(2) \d    数字也就是0到9,或者使用[0-9]

(3) \w   字母,数字,下划线   不包括空格

(4) \s    空格          不确定空格数量那么\s*  0个或者更多个,  \s+ 一个或者更多个空格 , \s?0个或者1个空格

(5) [abc]   字符组中的字符     [a-z]表示小写字母   [A-Z] 表示大写字母  [0-9]表示数字  

(6)  ^    匹配行或者字符串的起始位置,有时还会匹配整个文档的起始位置

(7)  [^abc ]   ^加入到[]中表示否定,这表示为不是abc的字符,那么 [^a-z] 不是小写字母

(8)  $    匹配行或字符串的结尾

(9)  \b    不会消耗任何字符只匹配一个位置    常用于匹配单词边界,单词开头或结束的位置

 

几种反义:

  “\W”   匹配任意不是字母,数字,下划线 的字符

   “\S”   匹配任意不是空白符的字符

 ”\D”  匹配任意非数字的字符

   “\B”  匹配不是单词开头或结束的位置

   “[^abc]”  匹配除了abc以外的任意字符