SQL正则表达式查找不以特定单词开头的字符串

Chi*_*_da 3 regex sql-server

我正在 MSSQL 中寻找正则表达式来省略以特定单词“开头”的值。例如,表达式应忽略以“Mr”开头的任何字符串,但提取以“MMR”开头或“Mr”位于字符串中间某处的任何字符串:

样本数据:

应省略:“ Mr Murphy Barrera 7329 Neque Road Zierikzee M15 6SF Tonga”

不应省略:“Murphy Barrera 7329 Neque Road Zierikzee M15 6SF Mr Tonga”

我使用过LIKE '[^Mr.]',但忽略了以 M OR R 开头的所有内容,所以它没有达到目的。

我有一个需要检查的单词列表(例如 Ms、Dr、St 等),所以我请求您让我知道如何调整正则表达式。

提前致谢!

小智 6

你为什么不直接使用

string not like 'mr%'

它将忽略从Mr开始的查询。

  • 谢谢@Tarlan,有时头脑试图让事情变得如此复杂,以至于它完全忽略了一个事实,即可能有更简单的做事方式!感谢您让我意识到这一点,我现在只是使用您的建议作为快速解决方案。也许稍后,为了使查询更高效,我将使用 contains 子句。 (2认同)