2015-12-08 1 views
0

У меня есть таблица, в которой я сохраняю выражение регулярного выражения, которое позже я использовал для обнаружения URL-адресов.URL-адрес сопоставления Mysql с сохраненным выражением регулярного выражения

Теперь я хочу, если я ввожу URL в поле поиска, то в запросе к базе данных будет получать все записи (регулярное выражение), что поймать URL:

, например, в БД я сэкономил это выражение

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

Теперь если я искать этот адрес

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

, то он должен автоматически получать записи, где регулярное выражение обнаружить этот адрес.

Я использую MySql и PHP Core,

+0

Арджун, пожалуйста, посмотрите на мой ответ человека. Дайте мне знать, если это сработает? –

ответ

0

У вас нет каких-либо захвата групп в своем регулярном выражении. Используйте это:

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

Таким образом, это дает последний набор чисел в качестве группы захвата. Вы можете проверить его на Regex101.

Теперь, используя preg_match(), вы можете получить последние id URL-адреса и которые могут быть использованы для выполнения ваших расчетов.

Пример кода

<?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"; 
?> 
+1

благодарит за ответ. но я думаю, вы не поняли мой вопрос. Я сделал выражение регулярного выражения, которое обнаруживает URL-адрес, а затем я сохранил это выражение в БД. Теперь, если я вхожу в url, тогда в запросе базы данных следует получить все выражение, которое обнаруживает этот конкретный URL-адрес –

+0

@ArjunThakur. О, вы хотите использовать это Regex в MySQL для получения всех идентификаторов? –

+1

@parveen no Я не хочу использовать регулярное выражение для получения идентификаторов. выражение уже сохраняется в БД. Теперь у меня есть один URL-адрес, и я хочу получить записи (выражения регулярных выражений), которые соответствуют URL-адресу. Один из способов - получить все записи (выражение, сохраненное в БД), а затем использовать preg_match. Я сопоставляю все выражения с URL. Но этот процесс занимает много времени. Поэтому я не хочу его использовать. –

Смежные вопросы