preg_match正则表达式匹配超过4位数

时间:2014-10-16 16:18:32

标签: php regex preg-match

我有$ input包含:

<a href="http://digitalocean.com/info/hello-23-kitty-show-1-d-zay-ya-9013294119" title="Hello Kitty  (Show &amp; Zay Ya" style="font-size:medium;" target="_blank" class="highlight-item">

我需要preg_match只有href url(9013294119)中的最后一位数字。这些数字有时会更长或更短,因为$ input中的URL会有所不同(但总的来说最少有4个字符)。

我尝试使用正则表达式,但没有运气,因为我的正则表达式经验非常有限:

preg_match('/^[0-9+]$/', $input, $output);

任何帮助?

1 个答案:

答案 0 :(得分:2)

删除^(以...开头)和$(以...结尾)锚点,并使用量词和一些前瞻和后方。

/(?<=-)[0-9]{4,}(?=")/

{4,}表示匹配上一个令牌,在本例中为[0-9],为4次或更多次。

DEMO

如果您的字符串模式不一致,您可以使用href="[^"]+?([0-9]{4,})",第1组将包含您想要的内容。