使用MySQL Regex - 匹配第一个单词,然后匹配字符串的第二个字母

时间:2014-03-21 02:34:35

标签: mysql regex database string

你如何编写一个匹配完整的第一个单词和字符串中第二个单词的第一个字符的MySQL正则表达式模式。该字符串实际上不必以单词开头。案件并不重要。

搜索第一个单词出现的字符串" Stack"并且下一个单词以" O"开头,对于以下所有内容,正则表达式模式应该返回true:

  1. - > Stack(溢出)很棒
  2. 堆叠 - >溢出很棒
  3. Stack Overflow很棒
  4. 并且如果" Stack"将会失败不是第一个单词出现或第二个单词不以" O"开头,如下所示:

    1. Stack Overflow是最好的吗?
    2. Stack is Overflow
    3. 我尝试了一些模式,但只提出了以下内容:

      SELECT * FROM members WHERE description REGEX '^[[:<:]]Stack[[:>:]].+[[:<:]]O'
      

      这里的问题是:

      1. 它只匹配实际上以&#34; Stack&#34;开头的字符串。但它也应该匹配像+=,Stack
      2. 这样的字符串
      3. 它匹配&#34; Stack&#34;之间的任何内容甚至是单词。和&#34;溢出&#34;
      4. 如果我能找到第一个和第二个单词边界,它将起作用。

1 个答案:

答案 0 :(得分:0)

我认为这个表达式符合你的要求:

 where description rlike '^[^a-zA-Z]*Stack [^a-zA-Z]*O'