正则表达式,选择数据库中的句子exept

时间:2016-01-19 12:17:52

标签: sql regex

我的数据库中有一段句子的一部分,如:

beautiful house close to the beach
this peaceful touristic area
under a beautiful tree
behind the property

我想选择不包含',' a'

等字词列表的句子

通缉结果:

 this peaceful touristic area
 behind the property

我认为我必须使用像

这样的东西
SELECT ID_sentence
FROM sentence 
WHERE semi_sentence NOT RLIKE '(.*)[^A-Za-z]to[^A-Za-z](.*)' 
AND semi_sentence NOT RLIKE '(.*)[^A-Za-z]a[^A-Za-z](.*)' 

但我无法正确使用正则表达式,我应该将列表归入一个正则表达式

2 个答案:

答案 0 :(得分:1)

您可以使用字边界应用于|运算符后列出的两个备选方案的

WHERE semi_sentence NOT RLIKE '[[:<:]](to|a)[[:>:]]'

请参阅what this regex matches(由于您使用的是NOT,您将获得不匹配的内容,并且在PCRE中使用\b而不是[[:<:]](前导词边界) )和[[:>:]](尾随字边界))。

答案 1 :(得分:0)

  1. 您可以尝试'.*?\sto\s.*''.*?\sa\s.*'
  2. 或在您的句子中第一个?之后添加.*
  3. 感谢。