Php 将PCRE正则表达式转换为mysql查询正则表达式

Php 将PCRE正则表达式转换为mysql查询正则表达式,php,mysql,regex,Php,Mysql,Regex,我有下面的正则表达式 ^(?!\d+$)(?!(?:[^$&%@]*[$&%@]){4})(?!.*\b\w{11}).{3,}$ 它在PHP中运行良好 我想把它转换成MySQL支持的查询。当我在正则表达式上面运行时。我从reg exp获得错误“重复运算符操作数无效” 请帮助解决此问题MySQL不支持lookarounds,也不支持\d或\w类。您可以这样拆分正则表达式: SELECT * FROM table WHERE col REGEXP '^.{3,}$' AND co

我有下面的正则表达式

^(?!\d+$)(?!(?:[^$&%@]*[$&%@]){4})(?!.*\b\w{11}).{3,}$
它在PHP中运行良好

我想把它转换成MySQL支持的查询。当我在正则表达式上面运行时。我从reg exp获得错误“重复运算符操作数无效”


请帮助解决此问题

MySQL不支持lookarounds,也不支持
\d
\w
类。您可以这样拆分正则表达式:

SELECT * FROM table WHERE col REGEXP '^.{3,}$' AND col NOT REGEXP '^[0-9]+$' AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' AND col NOT REGEXP '[[:<:]][[:alnum:]_]{11}'

从表中选择*,其中col REGEXP'^.{3,}$'和col NOT REGEXP'^[0-9]+$'和col NOT REGEXP'([^$&%@]*[$&%@]){4}'和col NOT REGEXP'[[:MySQL不支持lookarounds,也不支持
\d
\w
类。您可以这样拆分正则表达式:

SELECT * FROM table WHERE col REGEXP '^.{3,}$' AND col NOT REGEXP '^[0-9]+$' AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' AND col NOT REGEXP '[[:<:]][[:alnum:]_]{11}'

SELECT*从col REGEXP'^.{3,}$'和col NOT REGEXP'^[0-9]+$'和col NOT REGEXP'([^$&%@]*[$&%@]){4}和col NOT REGEXP'[[:解决方法是使用类似preg的MySQL UDF库,它的REGEXP比本机MySQL自己的库更复杂

您可以在下面的链接中键入上面的内容,以获得将直接与udf一起工作的表达式的Perl版本


解决方法是使用类似preg的MySQL UDF库,该库的REGEXP比本机MySQL的更复杂

您可以在下面的链接中键入上面的内容,以获得将直接与udf一起工作的表达式的Perl版本


类似于
WHERE col REGEXP'^.{3,}$'和col NOT REGEXP'^[0-9]+$'和col NOT REGEXP'([^$&%*[$&%@]){4}'和col NOT REGEXP'[[:类似于
WHERE col REGEXP'^.{3,}$'和col NOT REGEXP'^[0-9]+$'和col NOT REGEXP REGEXP'([^$&%*.[$&%*.[$&%]*.[$&%]){4}和col NOT REGEXP REGEXP[你是最好的。我推荐你你是最好的