正则表达式在太多的地方用到了,对于信息的筛选re称第一没人称第二了吧,各种命令和几乎所有的语言都支持,linux的grep也支持,python默认也带有re的库
在写爬虫的时候需要匹配所有的url和相关信息等等
实例1:一端ipconfig输出的信息
在这段信息中我想获取其中的所有ipv4地址,首先分析我们需要的ipv4地址信息
1.它是由数字组成的
2.其中包含三个小数点
3.格式为x.x.x.x x这四段信息可能是1到3位数字,个,十,百
4.当百位数1-2,十位数为0-9,个位数为0-9
根据1知道它用元字符\d,根据2知道用.来转义匹配,根据3知道使用量词 {1,3},根据4知道可以使用[1-2],[0-9]这种来匹配也可以,当然对于上面的信息来说,你知道每次ipconfig输出的都是标准的ipv4地址,而不会存在有333.444.555.666这种的信息,所以可以写出非常多的表达式来匹配出你所需要得信息
使用Regester工具测试下,\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}
这样子发现把掩码信息也匹配进来了
使用[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3},发现把部分ipv6的信息也匹配进来了
通常这串输出的信息ip地址结尾是不能是0的,那么我们改成 \d{1,3}.\d{1,3}.\d{1,3}.[1-9]{1,3}
当然我可能只需要10段地址开始的地址,那么我只需要固定前面匹配的值为10就可以了,这样子的匹配则变得更加精准
10.\d{1,3}.\d{1,3}.[1-9]{1,3}
[0-1]{2}.\d{1,3}.\d{1,3}.[1-9]{1,3}
实例2:博客里面的一段信息
class ="entry-title" > < a href="http://www.testone.top/?p=933" rel="bookmark" > encode,decode的使用和编码问题 < / a > < / h2 > < span class ="posted-on" > Zss 发表于: < time class ="entry-date published" datetime="2018-09-05T22:32:56+00:00" > 2018