正则表达式

2021-04-21,今天遇到了个问题,mybatis 的 test 判断写错了,判断相等,用了"="而不是"==",需要全局查询出是否有相同存在的问题,于是编写了下面的正则

test\s*=\s*.*[^!=]=[^=]\s*\w*">
<if test="item.educationalType != null and item.educationalType=1">or t_classIncome.gradeIndex = 13</if>   // 匹配数据1
<if test="item.educationalType != null and item.educationalType = 1">or t_classIncome.gradeIndex = 13</if> // 匹配数据2

下面我们来分析一下这个正则表达式的代码结构
"test" 是文本"test"
"\s" "\s"指的是空格,""指的是重复 0 ~ n 次,对应着"?"重复 0 ~ 1 次,对应着"+" 1 ~ n 次
"=" 是文本"="
"\s" 同上,因为存在不同的编程风格,是否在连接符后添加空格
".
", "."表示除了换行符之外的所有字符,""的加入,表示这里的判断重复多次
"
[^!=]" 表示此处不允许出现"!"或"="
"=" 表示此处必须有一个等号
"[^=]" 同上,这里不允许出现等号
好了,解析结束

posted @ 2021-04-21 10:45  season-qd  阅读(61)  评论(0编辑  收藏  举报