0

我是正则表达式的新手,经过搜索和试验后,我找不到解决方案。我想用单词搜索数据库。搜索模式可能包含应该出现在返回词中的字母。示例模式:pale应返回包含“p”和/或“a”和/或“l”和/或“e”的单词:

可能的词(如果在数据库中):pal, lea, epa, pale,elap等等 ...

我的问题是如何构建一个可以执行上述操作的正则表达式。

问候。

4

1 回答 1

1
SELECT *
FROM MyTable
WHERE word RLIKE '^[pale]+$'

遵守字母计数的正则表达式如下所示:

^(p?(a?(l?e?|e?l?)|l?(a?|e?)|e?(a?lf?|l?a?))|a?(p?(l?e?|e?l?)|l?(p?e?|e?p?)|e?(p?l?|l?p?))|l?(a?(p?e?|e?p?)|p?(a?e?|e?a?)|e?(a?p?|p?a?))|e?(p?(a?l?|l?a?)|a?(p?l?|l?p?)|l?(a?p?|p?a?)))$

如您所见,正则表达式的大小基于输入的长度呈指数增长。

于 2013-04-11T10:05:32.020 回答