正则表达式反向搜索

时间:2016-12-09 09:31:23

标签: php regex

干草堆14201-33-0.html

0

正则表达式:((?:-[^-]*))$

件: -0.html

所以我需要捕获上一个-.的数字,不包括那些字符本身。我对正则表达式并不擅长,所以无法完全确定如何匹配0。它可以是1或2位代替0

1 个答案:

答案 0 :(得分:2)

您可以使用以下正则表达式:

'~-(\d+)\.\D*$~'

请参阅regex demo

<强>详情:

  • - - 连字符
  • (\d+) - 第1组:一个或多个数字
  • \. - 一个点
  • \D* - 除数字以外的零个或多个字符(可以更改为[a-zA-Z]+或特定的扩展名列表,例如(?:html?|php)
  • $ - 字符串结束。

PHP demo

$re = '~-(\d+)\.\D*$~';
$str = '14201-33-0.html';
if (preg_match($re, $str, $match)) {
 echo $match[1];
}