【发布时间】:2014-03-21 02:34:35
【问题描述】:
您将如何编写一个 MySQL 正则表达式模式来匹配字符串中完整的第一个单词和第二个单词的第一个字符。该字符串实际上不必以单词开头。大小写无关紧要。
当搜索第一个单词出现为“Stack”且下一个单词以“O”开头的字符串时,正则表达式模式应针对以下所有情况返回 true:
- -> 堆栈(溢出)很棒
- 堆栈 -> 溢出很棒
- 堆栈溢出很棒
如果“Stack”不是第一个单词出现或第二个单词不是以“O”开头,则会失败,如下所示:
- Stack Overflow 是不是最好的?
- 堆栈溢出
我尝试了一些模式,但只提出了以下几点:
SELECT * FROM members WHERE description REGEX '^[[:<:]]Stack[[:>:]].+[[:<:]]O'
这里的问题是:
- 它只匹配实际上以“Stack”开头的字符串,但它也应该匹配像
+=,Stack这样的字符串 - 它匹配任何介于“Stack”和“Overflow”之间的单词,甚至是介于“Stack”和“Overflow”之间的单词
如果我能找到第一个和第二个单词的边界就可以了。
【问题讨论】:
标签: mysql regex database string