当前位置: 首页 > news >正文

正则表达式的一些高级用法

  1. 不允许出现某个单词,使用?!
    (?!Pattern).\.matches
    表示.matches之前的不能是Pattern
  2. 非贪婪匹配,在匹配项后加?
    matches\((.*?)\)
    这里在.*后加问号,表示尽可能少的匹配。
  3. \w表示字母、数字和下划线
  4. 防范redos攻击,可使用Cyber-Redos-Terminator检查开发使用的正则表达式。java代码里排查可能的redos攻击,可使用下面三个正则式:
    REG_CALL_PAT1 = re.compile("Pattern\\.compile\\((.*)\\)")REG_CALL_PAT2 = re.compile("Pattern\\.matches\\((.*),.*\\)")REG_CALL_PAT3 = re.compile('(?!Pattern).\\.matches\\((".*"|[\\w\\.]+)\\)')
http://www.lryc.cn/news/303363.html

相关文章:

  • 第3.1章:StarRocks数据导入——Insert into 同步模式
  • Docker基本使用【数据卷的挂载及常用命令】
  • 5G DTU实现燃气管道数据采集远程管理
  • 请解释Java中的代理模式,分别介绍静态代理和动态代理
  • Python 文件处理指南:打开、读取、写入、追加、创建和删除文件
  • 记录C#导出数据慢的优化方法
  • Android批量加载图片OOM问题
  • SNAT与DNAT公私网地址转换
  • 快速上手Spring Boot整合,开发出优雅可靠的Web应用!
  • MySQL高级特性篇(7)-数据库版本控制与迁移
  • js判断对象是否为空
  • 2024前端面试准备之HTML篇
  • devOps系列(八)efk+prometheus+grafana日志监控和告警
  • 考研英语单词29
  • spring-security 过滤器
  • 掌握这7种软件设计原则,让你的代码更优雅
  • Flutter自定义tabbar任意样式
  • Java设计模式【策略模式】
  • (13)Hive调优——动态分区导致的小文件问题
  • 【linux】使用g++调试内存泄露:AddressSanitizer
  • 第三百五十七回
  • 新版Java面试专题视频教程——框架篇
  • 网络爬虫实战 | 上传以及下载处理后的文件
  • Linux--shell编程中有关while循环的详细内容
  • 回归测试与重新测试
  • java 版本企业招标投标管理系统源码+多个行业+tbms+及时准确+全程电子化
  • 详解动态内存管理!
  • iocp简单例子
  • HAL STM32 HW I2C DMA + SSD1306/SH1106驱动示例
  • grafana配置钉钉告警模版(一)