在mysql(8.0.5+)中,它不能使用icu regexp在单词边界上执行搜索。据我所知应该是洛杉矶
$ mysql -e 'SELECT REGEXP_LIKE("aaa abc ccc", ".*\b+abc\b+.*")'
+---------------------------------------------+
| REGEXP_LIKE("aaa abc ccc", ".*\b+abc\b+.*") |
+---------------------------------------------+
| 0 |
+---------------------------------------------+
但这个选项不起作用。
1条答案
按热度按时间ppcbkaq51#
首先,请注意
REGEXP_REPLACE
可以部分匹配字符串,而不需要.*
搜索词前后。这个
\
char应该转义以定义一个文本反斜杠,因为\
它本身允许mysql引擎转义字符。请参阅mysql 8文档:笔记
因为mysql在字符串中使用c转义语法(例如,
\n
要表示换行符),必须将任何\
在expr和pat参数中使用的。因此,你需要