-7

can someone help me to write a regex to modify the links below

mywebsite.com/images/products/12345678_pit.jpg<br>
mywebsite.com/images/products/12345678_piat_a2.jpg

to the links:

mywebsite.com/images/zoomimage/12/12345678_var.jpg<br>
mywebsite.com/images/zoomimage/12/12345678_var_a2.jpg

we see that

  • products = zoomimage
  • pit|piat = var
  • 12345678 = 12/12345678 (meaning first 2 digits / initial number)

Thanks

zessx
  • 68,042
  • 28
  • 135
  • 158
Marcel
  • 31
  • 1
  • 3

1 Answers1

1

Giving you an example in PHP, but the regex can be reused with another language :

$urls = array(
    'mywebsite.com/images/products/12345678_pit.jpg',
    'mywebsite.com/images/products/23456789_foo.jpg',
    'mywebsite.com/images/products/34567890_bar.jpg',
    'mywebsite.com/images/products/12345678_piat_a2.jpg',
    'mywebsite.com/images/products/45678901_baz_a2.jpg',
    'mywebsite.com/images/products/56789012_qux_a2.jpg'
);
foreach($urls as $url) {
    echo preg_replace(
        '/products\/(\d{2})(\d*)_[a-z-]+(.*)\.jpg/i', 
        'zoomimage/$1/$1$2_var$3.jpg', $url) .'<br>';
}
// mywebsite.com/images/zoomimage/12/12345678_var.jpg
// mywebsite.com/images/zoomimage/23/23456789_var.jpg
// mywebsite.com/images/zoomimage/34/34567890_var.jpg
// mywebsite.com/images/zoomimage/12/12345678_var_a2.jpg
// mywebsite.com/images/zoomimage/45/45678901_var_a2.jpg
// mywebsite.com/images/zoomimage/56/56789012_var_a2.jpg
zessx
  • 68,042
  • 28
  • 135
  • 158