首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python处理正则表达式超时的办法

最近在项目中遇到一个问题,就是需要采用正则匹配一些疑似暗链和挂马的HTML代码,而公司的老大给的正则表达式有的地方写的不够严谨,导致在匹配的时候发生卡死的现象,而后面的逻辑自然无法执行了。虽然用正则表达式来判断暗链和挂马可能不那么准确或者行业内很少有人那么做,但是本文不讨论如何使用正确的姿势判断暗链挂马,只关注与正则超时的处理。 在使用正则表达式的时候,如果正则写的太糟糕,所消耗的时间是惊人的,并且有可能会一直回溯,而产生卡死的现象,所以一般的大型公司都会有专门的人来对正则进行优化,从而提高程序效率。一般来说如果可能的话不要让用户来输入正则进行匹配。但是现在既没有专门的人进行正则的优化,本人也对正则了解的不够,所以只能从另外的角度来考虑处理超时的问题。 首先我想到的方法是另外开启一个线程来进行匹配,而在主线程中进行等待,如果发现子线程在规定的时间内没有返回就kill掉子线程。这也是一个方案,但是我现在要介绍另外一种方案,该方案来自我在网上看到的一篇博客.

03
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    常用Linux命令整理

    1、匹配文本内容,常用grep -E '查找的内容' 文件名。更多用法参考:https://www.cnblogs.com/leo-li-3046/p/5690613.html 参数: --color 把匹配的内容显示为红色 -E 使用正则匹配 -A10 显示匹配行后面10行 -B10 显示匹配行前面10行 -C10 显示匹配行前后10行 -c 显示匹配行的计数 2、grep实现and语义:grep 'pattern1' filename | grep 'pattern2',不过一般情况下,搜索日志需要搜索整个文件,因此使用cat和grep搭配使用:cat filename | grep 'pattern1' | grep 'pattern2' 3、假如一页无法显示完,需要grep、cat、more结合使用,例如 cat install.log | grep “i686”| more。 (1)在more 文件名下,空格向后一页,ctrl + B往前一页。在cat install.log | grep “i686”| more情况下,无法使用ctrl + B往前一页 (2)在这种情况下,推荐使用cat test.text | grep -C100 '2' | less,可以达到more一样的效果,d往后翻页,b往前翻页

    02
    领券