1

我在 MySQL 表中有一堆正则表达式。我想知道给定的字符串是否匹配任何正则表达式的一部分。

例如:

+----+--------------------------------+
| id | regexps                        |
+----+--------------------------------+
| 1  | foo-[0-9]*\.example\.com       |
| 2  | (bar|tux)-[0-9]*\.example\.com |
+----+--------------------------------+

regexps属性是VARCHAR类型)

foo-11.example.com匹配第一个正则表达式。

我想要一个返回具有给定字符串的第一行的 MySQL 查询foo-11

4

1 回答 1

0

这应该在 MySql 上执行:

select * from table t where 'foo-11.example.com' rlike t.data;

PostGreSQL 中还有其他方法。这是我引用的链接:

  1. http://www.tutorialspoint.com/mysql/mysql-regexps.htm
  2. 将查询与 SQL 中的正则表达式匹配?

PS:虽然使用 * 很棘手!

于 2013-08-27T13:25:37.603 回答