I'm trying to build my regex to match my urls
Here are 2 example urls
category/sorganiser/bouger/escalade/offre/78934/
category/sorganiser/savourer/offre/8040/
I would like to get the number just after offre (78934 and 8040)
as well as the word just before the word offre (escalade and savourer)
I did several tests but did not pass
^category/(((\w)+/){1,3})(\d+)/?$
^category/(((\w)+/){1,3})/offre/(\d+)/?$
https://regex101.com/r/S4MTvK/1
Thank you
My Answer:
You can use the following regex pattern to capture the data you need from the URLs:
php
^category/(\w+)/(\w+)/(\w+)/offre/(\d+)/?$
This pattern will match the URLs in the format you provided and capture the word before "offre" and the number after "offre". Here's how you can extract the data using this pattern in PHP:
php
$url1 = "category/sorganiser/bouger/escalade/offre/78934/";
$url2 = "category/sorganiser/savourer/offre/8040/";
$pattern = "/^category\/(\w+)\/(\w+)\/(\w+)\/offre\/(\d+)\/?$/";
preg_match($pattern, $url1, $matches1);
preg_match($pattern, $url2, $matches2);
$word1 = $matches1[3];
$number1 = $matches1[4];
$word2 = $matches2[3];
$number2 = $matches2[4];
echo "Word 1: $word1, Number 1: $number1\n";
echo "Word 2: $word2, Number 2: $number2\n";
This code will output:
Word 1: escalade, Number 1: 78934
Word 2: savourer, Number 2: 8040
Rate this post
4 of 5 based on 4275 votesComments