正则表达式的坑与调试


nginx 配置的正则表达式

nginx 改写模块中的subs_filter 正则匹配模式配置比 传统的正则表达式 在使用转义 \ 时 多一个 \

示例:

(\\||%2f%2f|%2F%2F|\'|\"|//|\\\/\\\/)([0-9a-zA-Z\-]*\.[0-9a-zA-Z\-\.]+)(:?[0-9]*)(%2f|%2F|/|\"|\\\/|\'|\\?|\\||\\\)

实则是pcre 中的:

(\||%2f%2f|%2F%2F|'|"|//|\\/\\/)([0-9a-zA-Z-]*.[0-9a-zA-Z-.]+)(:?[0-9]*)(%2f|%2F|/|"\\\/|'|\?|\||\\)

(1x|2a) 与 [1x|2a]

前者表示匹配1x 或者 2a 后者 表示 1 x | 2 a 中的任意一个字符

调试网站

单步调试 和性能调试

https://regex101.com/

正则表达式 的编写结果可视化 和 单步调试

https://www.debuggex.com/?re=([0-9]{3})-([0-9]{3})-([0-9]{4})&str=123-456-7899

回溯与CPU 问题

网页改写中配置标题不改写,正则表达式编写为

[^<]*</a>, 当出现cpu问题时,可以用上述调试 进行单步调试 查看执行步数性能情况并进行优化^[^<][^<]+</a>

参考:
https://www.sohu.com/a/256322816_463994

正则表达式的坑与调试相关推荐

  1. lua中正则表达式的坑

    我在使用OpenResty编写lua代码时,需要使用到lua的正则表达式,其中pattern是这样的, --热水器设置时间 local s = '12:33' local pattern = &quo ...

  2. JavaScript正则表达式的坑很深

    Javascript的正则表达式,不能不说方便,简简单单"//"就可以声明一个RegExp对象,配合编辑器的颜色渲染,实在让人舒心.但过于方便的东西,必然也会有一些瑕疵需要我们去注 ...

  3. vivado下QSFP模块调试遇到的一些坑和调试简单记录

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 xilinx QSFP模块ip调试 前言 一.ip配置注意事项 二.避坑指南 三.调试,调试请参考文档,文档已经很详尽了,我只在文档之 ...

  4. java正则匹配的坑_java正则表达式入坑指南

    在日常开发工作中,无论你使用的语言是java.python.shell.golang还是C#, 正则表达式是编程语言中几乎绕不开的话题.有了它,可以帮你快速定位到符合条件的文本内容.今天小编带大家一起 ...

  5. java正则表达式 %_java正则表达式入坑指南

    在日常开发工作中,无论你使用的语言是java.python.shell.golang还是C#, 正则表达式是编程语言中几乎绕不开的话题.有了它,可以帮你快速定位到符合条件的文本内容.今天小编带大家一起 ...

  6. lua 的正则表达式之坑

    header_filter_by_lua 'local loc, err = ngx.re.match(location_str,"(https?://)([^/:\\\?]*)(:?[0- ...

  7. linux正则表达式踩坑

    假设一个文件file.txt,其内容如下: 1323.23.24.1 12 13.2 11.d 12.3.4 命令(加上引号): grep "[0-9]\.[0-9]" file. ...

  8. ThinkPHP开发中遇到的小坑

    TP不得不说是现在来说最好用的框架了,但是也不能不承认它还是有一些小坑需要填了. 1.坑爹的字段缓存机制 thinkphp为了高效的读取数据库,更快的打开网页,加入了字段缓存这个机制,其实来说是挺好的 ...

  9. 正则不能输入特殊字符_正则表达式语法学习和在线练习

    标题: 正则表达式语法学习和在线练习作者: 梦幻之心星 sky-seeker@qq.com标签: [#正则表达式,#语法,#学习,#练习]目录: [语法]日期: 2021-01-26 背景说明 正则表 ...

最新文章

  1. GTX1080 LetNet-5 CPU GPU cuDNN5.1 时间对比
  2. jQuery_2_常规选择器-进阶选择器
  3. 【Python3网络爬虫开发实战】 1.2.2-Selenium的安装
  4. 所有的物理引擎演示程序
  5. Android 8.0学习(18)--- Android8.0运行时权限策略变化和适配方案
  6. 加密解密你了解多少?
  7. Python里面几种排序算法的比较,sorted的底层实现,虽然我们知道sorted的实现方式,但是...
  8. typescript之hasOwnProperty
  9. matlab红字怎么删除,matlab-系统爱好者
  10. 优化器,sgd,adam等
  11. 简易计算器--带小数点--单片机课程设计
  12. 定点补码加减法运算_定点加减法运算与溢出判断处理
  13. ABP官方文档(一)【入门介绍】
  14. Java读取证书报错:java.io.IOException: Unknown named curve: 1.2.156.10197.1.301
  15. DZS与EPS Global合作,加速下一代接入基础设施在欧洲和亚洲的应用
  16. java学习第二周周记
  17. 第四十七章 SQL命令 GRANT(一)
  18. 几分钟计算机不操作就注销,win10系统长时间不操作就自动注销的方案
  19. 电脑装双系统有什么坏处?可不只是速度变慢!
  20. Lecture3 损失函数和优化损失函数

热门文章

  1. 把jpg转换成pdf软件
  2. 【ACM】杭电1073:Online Judge
  3. vue-cli Invalid Host header
  4. 手势识别之平移、缩放、长按、旋转、滑动
  5. 查看Linux进程状态
  6. JDK1.6安装与环境变量设置详细图解
  7. 总结H3CNE学习过程和其他
  8. 图片滤镜算法原理简单讲解
  9. 用shell脚本计算日期的小函数们
  10. 编写配置文件不能出现帮助信息