我正在寻找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
答案 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
)。