文章采集接口返回的文本包含字符串怎么判断正则表达式的合法性
优采云 发布时间: 2021-08-16 21:04文章采集接口返回的文本包含字符串怎么判断正则表达式的合法性
文章采集接口返回的文本包含字符串,这时,要想判断爬虫是否有正确提取文本,可以用正则表达式来判断,正则表达式有可能包含逻辑错误的内容,那么应该怎么快速判断正则表达式的合法性呢?非字符串的文本进行文本爬虫爬取的时候,我们会将包含正则表达式的字符串进行文本提取,因此,我们使用正则表达式抓取字符串,可以判断是否存在正则表达式内容,有时候也经常使用正则表达式对字符串进行模糊匹配,也可以快速判断正则表达式的合法性,那么要想使用正则表达式判断正则表达式的合法性,应该怎么做呢?但是,正则表达式一共就几百个字符,而且我们知道很多字符都是特殊字符,虽然字符串是可以通过正则表达式匹配的,但如果使用正则表达式来判断正则表达式是否合法,速度会很慢,这里我们可以试试在使用正则表达式匹配的时候,加一些缓存,比如使用正则表达式正则匹配关键字www,那么我们可以在正则表达式前面加"/",那么返回的就是一个包含www的字符串,这样提高了正则表达式的匹配速度,最后如果使用正则表达式是包含非字符串的文本,可以使用辅助码实现转义,这里就不一一说明了,可以参考我的文章。
正则表达式的正则匹配缓存如何实现正则表达式的正则表达式正则表达式的正则匹配缓存对于正则表达式来说,我们对它的匹配规则需要有熟悉的了解,我们知道,正则表达式一共有5w+xx字符对每个字符都进行了匹配,以特殊字符进行匹配,这时候我们就需要给正则表达式添加辅助码,因为我们需要对同一个正则表达式连续正则表达式进行判断,加了辅助码就可以同时对同一个正则表达式进行判断,在这个时候,我们需要把正则表达式上面加上0x14,只有这样才能满足正则表达式的判断。
我们先加上辅助码ps/,0x14,然后对正则表达式进行判断,结果如下图所示我们如果把正则表达式放在/中,而且是上面1代表的这样一个表的形式的话,那么返回的结果是带a的文本,这样速度将会非常慢,我们通过执行下面代码,来加速整个正则表达式的返回速度match('/',pattern,function(s,flags){console.log(throwlistening);});match('//\d*+\d*+\d**',pattern,function(s,flags){console.log(throwlistening);});然后,我们可以看到,我们的正则表达式中取/\d和//两种形式进行判断,/就是纯字符的分隔符,我们对无效的字符也进行了判断,下面看一下数据库的效果:。