匹配字符串的第一个字,然后匹配第二个字母

你将如何编写一个MySQL正则表达式模式来匹配字符串中第一个单词和第二个单词的第一个字符。 字符串实际上不必以单词开头。 案例无关紧要。

当搜索第一个单词出现为“Stack”并且下一个单词以“O”开头的字符串时,正则表达式模式应该为以下所有返回true:

  • - >堆栈(溢出)是伟大的
  • 堆栈 - >溢出很好
  • 堆栈溢出很好
  • 如果“堆栈”不是第一个字出现或者第二个字不是以“O”开头,将会失败,如下所示:

  • 堆栈溢出最好?
  • 堆栈溢出
  • 我尝试了一些模式,但只提出以下几点:

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

    这里的问题是:

  • 它只匹配实际以“Stack”开头的字符串,但它也应该匹配字符串,如+=,Stack
  • 它匹配“堆栈”和“溢出”之间的任何内容,甚至是单词之间的任何内容
  • 如果我能找到第一个和第二个单词边界,它将起作用。


    我认为这个表达可以做你想做的事情:

     where description rlike '^[^a-zA-Z]*Stack [^a-zA-Z]*O'
    
    链接地址: http://www.djcxy.com/p/75347.html

    上一篇: Match the first word then second letter of a string

    下一篇: Mysql Mode On Linux CentOS