Mysql匹配保存的正则表达式的url

时间:2015-12-08 11:49:27

标签: php mysql regex

我有一个表,我正在保存正则表达式,后来我用来检测网址。

现在我想要如果我在搜索字段中输入url然后在数据库查询中将获取捕获url的所有记录(正则表达式):

例如在db中我保存了这个表达式

.*\/[a-z0-9]{0,}\.gif\?abc=[0-9]&rnd=[0-9]{1,}.*

现在如果我搜索这个网址

cnzz.mmstat.com/9.gif?abc=1&rnd=162146281

然后它应该自动获取正则表达式检测此URL的记录。

我正在使用MySql和Core PHP

1 个答案:

答案 0 :(得分:0)

你的正则表达式中没有任何捕获组。使用此:

.*\/[a-z0-9]{0,}\.gif\?abc=[0-9]&rnd=([0-9]{1,}.*)

因此,这将最后一组数字作为捕获组。您可以在Regex101进行测试。

现在使用preg_match(),您可以获取该网址的最后id,并可用于进行计算。

示例代码

<?php
preg_match('.*\/[a-z0-9]{0,}\.gif\?abc=[0-9]&rnd=([0-9]{1,}.*)',
    "cnzz.mmstat.com/9.gif?abc=1&rnd=162146281", $matches);
$id = $matches[0];

echo "The id is: {$matches[0]}\n";
?>