【问题标题】:I need regex to modify a string我需要正则表达式来修改字符串
【发布时间】:2014-01-29 03:22:05
【问题描述】:

谁能帮我写一个正则表达式来修改下面的链接

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

到链接:

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

我们看到了

  • products = zoomimage
  • pit|piat = var
  • 12345678 = 12/12345678(表示前 2 位数字/初始数字)

谢谢

【问题讨论】:

  • 你使用什么语言?
  • 您的预算是多少?如果您希望我们完成所有工作,您不会期望它是免费的,对吧?
  • 请求代码的问题必须证明在解决实际问题方面付出了最小的努力,包括尝试的代码和遇到的问题

标签: regex string regex-lookarounds regex-greedy


【解决方案1】:

给你一个 PHP 的例子,但是正则表达式可以用另一种语言重用:

$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,您的解决方案完美运行。祝你有美好的一天!
猜你喜欢
  • 2011-07-03
  • 1970-01-01
  • 1970-01-01
  • 2019-09-25
  • 1970-01-01
  • 2014-10-17
  • 2022-01-03
  • 2017-09-05
相关资源
最近更新 更多