【问题标题】:Need Regular Expression for Format -xx-xxx-x- [closed]需要格式的正则表达式 -xx-xxx-x- [关闭]
【发布时间】:2013-05-22 02:44:08
【问题描述】:

我需要从传递的 URL 中解析产品 ID。 URL 的长度不确定,因此产品 ID。 URL 可能像

http://<hostname>/p/Brand-Product-Name-6118-161-1-gallery.jpg

http://<hostname>/p/Brand-Product-Name-165-7128-12-gallery.jpg

在任何情况下我都想要中间数值,即(161 和 7128)。我的编程语言是 PHP。

【问题讨论】:

  • 你试过什么?通过阅读基本教程,您就会知道如何做到这一点。
  • 这是最简单的正则表达式之一。你有没有尝试过?
  • 这里,拿我的-1。下次阅读常见问题解答。
  • 感谢您的评论,但没有找到任何东西。如果您能提供帮助,那就太好了。我不是来浪费任何人的时间的。

标签: php regex


【解决方案1】:
<?php

$url = "http://<hostname>/p/Brand-Product-Name-6118-161-1-gallery.jpg";

preg_match_all('#(\d+)-(\d+)-\d+-gallery\.jpg$#',$url,$matches);
// Depends on how accurate you want to be. You can go with many choices like:
// preg_match_all('#http\://.*?/p/.*?(\d+)-(\d+)-\d+-.*\.jpg#',$url,$matches);

var_dump($matches);

/*
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(22) "6118-161-1-gallery.jpg"
  }
  [1]=>
  array(1) {
    [0]=>
    string(4) "6118"
  }
  [2]=>
  array(1) {
    [0]=>
    string(3) "161"
  }
}
*/

【讨论】:

  • 无需在 [] 字符组之外转义 -
猜你喜欢
  • 1970-01-01
  • 2022-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-04
  • 2022-06-29
  • 1970-01-01
  • 2016-12-24
相关资源
最近更新 更多