否定rlike正则表达式中的特定行结束序列

Gre*_*reg 1 regex rlike

我想匹配任何不以'CA'或'CA [任何数字]'结尾的行.我怎样才能在MySQL中使用rlike?(注意它不支持?!等).

这是正面匹配的正则表达式,我只需要一种方法来否定它: '^.*[C][A][0-9]?$'

(由于令人尴尬的架构限制,我不想使用not rlike ...)

yst*_*sth 6

诀窍是把它变成你的事情的描述想匹配.在以下情况下,某些内容不会以CA或CA(数字)结尾:

它以A或数字以外的其他内容结束,或者

它以A以外的东西结束,然后是数字,或者

它以C以外的东西结束,然后是A,然后是数字,或者

它以C以外的东西结束,然后是A或

它等于A后跟一个数字,或

它等于A或数字,或

它是空的.

所以:

rlike '[^A0-9]$|[^A][0-9]$|[^C]A[0-9]$|[^C]A$|^A[0-9]$|^[A0-9]$|^$'
Run Code Online (Sandbox Code Playgroud)

未经测试,未经"优化",可能至少在上面某处出现过一次错误.