我想匹配任何不以'CA'或'CA [任何数字]'结尾的行.我怎样才能在MySQL中使用rlike?(注意它不支持?!等).
这是正面匹配的正则表达式,我只需要一种方法来否定它: '^.*[C][A][0-9]?$'
(由于令人尴尬的架构限制,我不想使用not rlike ...
)
诀窍是把它变成你的事情的描述也想匹配.在以下情况下,某些内容不会以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]$|^$'
未经测试,未经"优化",可能至少在上面某处出现过一次错误.