2021-04-21,今天遇到了个问题,mybatis 的 test 判断写错了,判断相等,用了"="而不是"==",需要全局查询出是否有相同存在的问题,于是编写了下面的正则
tests*=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" 同上,因为存在不同的编程风格,是否在连接符后添加空格
".", "."表示除了换行符之外的所有字符,""的加入,表示这里的判断重复多次
"[^!=]" 表示此处不允许出现"!"或"="
"=" 表示此处必须有一个等号
"[^=]" 同上,这里不允许出现等号
好了,解析结束