字符匹配正则表达式不等于“a”但可以为“ab”

'岳阳市岳阳楼' rlike '^(?!岳阳)((?!长沙|邵阳).)*(?=岳阳)((?!长沙|邵阳).)*$ 

我之前做了如上这个测试,这是是匹配上的,我的要求是字符串不等于“岳阳”,但是可以为(岳阳市)。

如果改为如下

'岳阳市岳阳楼' rlike '^(?!岳阳)|((?!长沙|邵阳).)*(?=岳阳)((?!长沙|邵阳).)*$ 

那么字符为岳阳的也会匹配成功,各位大大有什么好的方案吗?

^(?!岳阳[^市])((?!长沙|邵阳).)*(?=岳阳)((?!长沙|邵阳).)*$

或者

^(?!岳阳(?!市))((?!长沙|邵阳).)*(?=岳阳)((?!长沙|邵阳).)*$

select case when '岳阳市岳阳楼' rlike '^(?!岳阳)((?!长沙|邵阳).)*(?=岳阳)((?!长沙|邵阳).)*$ then 1 else 0 end ; -- 我需要的字符串“岳阳”不匹配上,但是字符串“岳阳市”能匹配上

select case when '岳阳市岳阳楼' rlike '^(?!岳阳)|((?!长沙|邵阳).)*(?=岳阳)((?!长沙|邵阳).)*$  then 1 else 0 end; --这种方案的话 字符串 “岳阳” 也能匹配上

-- 所以各位高手有什么好的方案吗?

 

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y