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

  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\.]+)\)')

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>