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

标签 php mysql regex

我有以下正则表达式

^(?!\d+$)(?!(?:[^$&%@]*[$&%@]){4})(?!.*\b\w{11}).{3,}$

它在 PHP 中运行良好

我希望将其转换为 MySQL 支持的查询。当我在正则表达式之上运行时。我从 reg-exp 收到错误“重复运算符操作数无效”

请帮忙解决这个问题

最佳答案

MySQL 不支持环视,也不支持 \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}'

地点:

  • REGEXP '^.{3,}$' - 总长度应为 3 个或更多字符
  • AND col NOT REGEXP '^[0-9]+$' - 字符串不能仅包含数字
  • AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' - 字符串不能有 4 个特殊字符
  • AND col NOT REGEXP '[[:alnum:]_]{11}' - 字符串不能包含包含 11 个字符的单词

关于php - 将PCRE正则表达式转换为mysql查询正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36232862/

相关文章:

regex - bash中冒号后的正则表达式提取字符串

php 邮件功能即使显示真实情况部分也无法正常工作

php - 你如何使用 PHP OpenPGP 库?

PHP 到 MySQL 数据库

mysql - 无法运行 rake 数据库 :create segmentation fault

mysql - 如何使用 MySQL 语句替换 '(引号)字符

javascript - 使用正则表达式匹配多个 url 路径,包括正斜杠

javascript确认向get/post添加参数

mysql - SQL 选择仅包含数字的值

Java String 与 REGEX 匹配错误