正则表达式常见问题汇总:
一、将常规的筛选规则写好后发现只匹配到一部分数据,剩下的数据匹配不到,原因大多是由于换行导致的(在匹配的时候会按行进行匹配的,因为我们写的规则.中默认是没有\n的,所以到换行时就会以为结束。可以使用替代的方式将换行替换掉,也就是将数据全部都放在同一行,或者在规则中添加换行符即可),所以在匹配数据的时候多注意一下换行带来的这个问题
二、规则中大小写问题,如果是在python中使用,可以使用re.IGNORE的方式来忽略大小写
三、想匹配同的结果在相同类型的规律下,但是筛选规则只有一处或者两处的差异,这个时候也可以利用.*?的方式来直接替代规则中的差异,也可以使用“|”的方式来进行匹配
四、在匹配数据时,如果筛选规则不太好写,那么就可以通过多次筛选来实现,不要觉得所有的数据都可以通过一次匹配就实现,在实际的使用中,如果是从网站上拿下来的网页数据,规律性可能会强一些,但是如果是其他的文本类型的数据,规律性就会很差,所以就需要通过多次筛选,不断的缩小匹配库内数据
五、有些时候,如果文本的规律性实在特别差,也可以有选择的自行构建相应的规律,然后通过自 己构建出来的规律来实现
六、在匹配想要的数据时,发现.*?的方式得到的结果中有自己不想要的结果,那么就不要使用.*?的方式,自己构建规则,如只需要匹配a-f的字母,那么就可以这样写[a-f],如果还有数字或者特殊符号,那么就再添加[a-f0-9]即可
七,特殊符号,可以单独拿出来讨论,毕竟特殊符号全部拿出来也没有几个,看一下就好了
正则表达式其实就是一种关键字查找的工具,你只要输入数据中的某个特殊点,将其做为起始点,然后再找一个末尾的结束点,数据就会将中间的值匹配出来,也是一种模糊查找的方式,对于处理文本数据,正则表达式确实很高效。而且所谓的学习成本其实也不算是很高,只能说稍加练习,很快就可以掌握
推荐一个好用的公众号:“数据与编程之美”