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

Php Mysql根据保存的正则表达式匹配url,php,mysql,regex,Php,Mysql,Regex,我有一个表,其中保存了后来用来检测URL的正则表达式 现在我想,如果我在搜索字段中输入url,那么在数据库查询中将获取捕获url的所有记录(正则表达式): 例如,在db中,我保存了这个表达式 .*\/[a-z0-9]{0,}\.gif\?abc=[0-9]&rnd=[0-9]{1,}.* 现在如果我搜索这个url cnzz.mmstat.com/9.gif?abc=1&rnd=162146281 然后它应该自动获取regex检测到此url的记录 我使用的是MySql和核心PH

我有一个表,其中保存了后来用来检测URL的正则表达式

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

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

.*\/[a-z0-9]{0,}\.gif\?abc=[0-9]&rnd=[0-9]{1,}.*
现在如果我搜索这个url

cnzz.mmstat.com/9.gif?abc=1&rnd=162146281
然后它应该自动获取regex检测到此url的记录


我使用的是MySql和核心PHP,您的正则表达式中没有任何捕获组。使用以下命令:

.*\/[a-z0-9]{0,}\.gif\?abc=[0-9]&rnd=([0-9]{1,}.*)
因此,这将最后一组数字作为捕获组。你可以在测试

现在使用,您可以获得URL的最后一个
id
,该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";
?>


Arjun,请看一下我的答案。让我知道它是否有效?谢谢你的回复。但我想你不明白我的问题。我制作了一个正则表达式来检测url,然后将该表达式保存在DB中。现在,如果我输入一个url,那么在数据库查询中应该获取所有检测到该特定url的表达式url@ArjunThakur哦,伙计,你想用MySQL中的正则表达式来获取所有的ID吗?@parveen不,我不想用正则表达式来获取ID。表达式已保存在数据库中。现在我有一个url,我想获取与url匹配的记录(正则表达式)。一种方法是获取所有记录(表达式保存在DB中),然后使用preg_match我根据URL匹配所有表达式,但这个过程需要很多时间,所以我不想使用it@ArjunThakur呃。。。不清楚。好。。。你能用更好的方式解释吗?还是让我们等着,慢慢来,其他人可以回答<代码>:)