代码之家  ›  专栏  ›  技术社区  ›  Silver Light

在mysql数据库表中存储正则表达式并对其进行计算机处理

  •  5
  • Silver Light  · 技术社区  · 15 年前

    我有一个非常有趣的任务,我不知道如何实现。

    我需要将许多正则表达式存储在数据库表中,并且需要能够找到其中哪些与给定字符串匹配。

    例如:

    id | regexp
    ---|-------------
    1  | ^hello world$
    2  | ^I have [0-9] flowers&
    3  | ^some other regexp$ 
    4  | ^and another (one|regexp)$
    

    我需要找出哪一个短语和“我有5朵花”一串相匹配。我当然可以 从表中选择* 在php中循环遍历一个与它们一一匹配的表达式,但这对于服务器来说是非常糟糕的。

    我可以索引这个表或者使用一个特殊的sql查询来处理这个任务吗?

    我很感激你的回答。谢谢您。

    2 回复  |  直到 15 年前
        1
  •  11
  •   user187291    15 年前
    select * from table where $your_string RLIKE regexp 
    

    mysql regular expressions

        2
  •  2
  •   Romuald Brunet    15 年前
    SELECT * FROM table WHERE 'some stuff' REGEXP `regexp`;
    

    不幸的是,无法将索引与使用regexp的查询一起使用。