Mariadb V10.3.6 REGEXP表达式为2个重复单词

时间:2018-05-10 10:26:36

标签: mysql sql regex mariadb

我正在寻找REGEXP声明,以便在mariadb中重复2个或更多重复的单词。虽然此代码在php https://www.regextester.com/?fam=103328中有效 正如预期的那样/(\\ t + \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\如何在maria db中使用它?

SELECT * FROM hospital where 'title' REGEXP '/(\w+\s\w.*)\s.*\1/'
当有数千

时,

结果为0

1 个答案:

答案 0 :(得分:1)

首先,摆脱封闭的斜杠,这里不使用正则表达式分隔符。然后,您应该双重转义反斜杠以在模式内定义正则表达式转义。

要匹配一个重复的单词字符串,然后是1 +空格字符,然后再用一大块单词字符(两个以空格分隔的单词),你可以使用

REGEXP '\\b(\\w+\\s+\\w+)\\b.*\\b\\1\\b'

请参阅regex demo

<强>详情

  • \\b - 字边界
  • (\\w+\\s+\\w+) - 第1组:
    • \\w+ - 1 + word chars
    • \\s+ - 1+空白字符
    • \\w+ - 1 + word chars
  • \\b - 字边界
  • .* - 任意0个字符,尽可能多
  • \\b\\1\\b - 与作为整个单词存储在第1组中的值相同(为了避免在put in中匹配put in and input insider)。