如何将REGEXP与正则表达式转义一起使用,例如MySQL 8.0.5+中的单词边界?

问题描述 投票:3回答:2

在使用ICU-REGEXP在单词边界上执行搜索的MySQL(8.0.5+)中不起作用。据我了解,应该是[la

$ mysql -e 'SELECT REGEXP_LIKE("aaa abc ccc", ".*\b+abc\b+.*")'
+---------------------------------------------+
| REGEXP_LIKE("aaa abc ccc", ".*\b+abc\b+.*") |
+---------------------------------------------+
|                                           0 |
+---------------------------------------------+

但是此选项不起作用。

mysql regex mysql-8.0
2个回答
4
投票
首先,请注意REGEXP_REPLACE可以匹配字符串[[partially,并且在搜索词之前和之后都不需要.*

\字符应转义以定义文字反斜杠,因为\本身允许转义MySQL引擎的字符。看到这个MySQL 8 documentation

注意由于MySQL在字符串中使用C转义语法(例如\n表示换行符),因此必须将

expr

pat 参数。因此,您需要\

1
投票
© www.soinside.com 2019 - 2024. All rights reserved.