写点什么

正则表达式中使用 - 的一个小坑

作者:agnostic
  • 2022 年 8 月 29 日
    上海
  • 本文字数:173 字

    阅读完需:约 1 分钟

目标:匹配数字字母和-_空格制表符加号,长度 0-70。


一开始的写法[0-9a-zA-z_ \t-+]


结果发现 $&等符号都可以匹配。


研究后发现,正则解析引擎在这种情况下把-当作了范围符号,\t-+匹配了 ascii 码 20 到 43 之间的所有字符,所以 $(ascii 码 36)和 &(ascii 码 38)都可以有效匹配。


正确的写法有两种:

  1. 将-放在正则的最前面或者最后面:[0-9a-zA-z_ \t+-]

  2. 使用转义符:[0-9a-zA-z_ \t\-+]


发布于: 刚刚阅读数: 3
用户头像

agnostic

关注

还未添加个人签名 2019.02.14 加入

还未添加个人简介

评论

发布
暂无评论
正则表达式中使用-的一个小坑_正则表达式_agnostic_InfoQ写作社区