仅提取以" /"开头的数字;以" - "结束使用正则表达式

时间:2014-10-15 11:14:46

标签: php regex

我的变量中有一个url地址:

$a = "http://www.example.com/cat1/something/subcat/543210-1abce-dsef100-199-test.html"

我想从这个字符串中仅选择数字" 543210",并选择这些数字我知道这些数字在符号/之后开始,并且在符号-之前结束。我试图修改这段代码:

$output = preg_replace( '/[^0-9]/', '', $a);

但我不知道应该在哪里添加/-以使此代码正常运行。

P.S。我知道我可以通过explode使用php函数/来查找正确的部分,但是url地址可以包含不同数量的/,所以我应该使用正则表达式。 < / p>

3 个答案:

答案 0 :(得分:2)

您可以使用前瞻:

(?<=/)(\d+)(?=-)

RegEx Demo

<强>代码:

if (preg_match( '~(?<=/)(\d+)(?=-)~', $input, $m))
   echo $m[1]; //=> 543210

答案 1 :(得分:0)

试试这个。它使用lookahead和lookbehind方法来提取数字

(?<=\/)\d{0,}(?=-)

Demo

答案 2 :(得分:0)

你也可以试试这个:

\/([0-9]+)\-