Php 如何获取在';之前的最后数字;。html';一串
有一个字符串,例如:1111.html 无论如何,我无法用php中的regexp获得1111。可能吗?怎么做 我的代码:Php 如何获取在';之前的最后数字;。html';一串,php,regex,Php,Regex,有一个字符串,例如:1111.html 无论如何,我无法用php中的regexp获得1111。可能吗?怎么做 我的代码: $address = 'http://address.com/sef-title-of-topic-1111.html'; preg_match('#-(.*?)\.html#sim',$address,$result); 如果URL总是这种格式,我会使用str_replace去掉.html,然后用“-”分解,找到最后一块 当然,所有这一切都是假设URL始终是这种格式。如
$address = 'http://address.com/sef-title-of-topic-1111.html';
preg_match('#-(.*?)\.html#sim',$address,$result);
如果URL总是这种格式,我会使用str_replace去掉.html,然后用“-”分解,找到最后一块
当然,所有这一切都是假设URL始终是这种格式。如果URL始终是这种格式,我将使用str_replace去掉.html,然后用“-”分解,找到最后一个部分
当然,所有这些都是假设URL始终采用这种格式。如果URL示例是它们始终显示的方式(即以连字符、数字、.html结尾),那么这应该可以:
$str = "http://address.com/sef-title-of-topic-1111.html";
preg_match('#.*-(\d+)\.html#', $str, $matches);
print_r($matches);
如果它们不总是与您在问题中给出的模式相匹配,则通过显示
$address
值的替代值来澄清。如果url示例是它们始终显示的方式(即以连字符、数字、.html结尾),则这应能起作用:
$str = "http://address.com/sef-title-of-topic-1111.html";
preg_match('#.*-(\d+)\.html#', $str, $matches);
print_r($matches);
如果它们不总是与您在问题中给出的模式相匹配,那么请通过显示
$address
值的替代值来澄清。如果您知道扩展名肯定是.html(例如不是.htm),那么您可以使用
$lastNos= substr($input, -9, -4);
显然这是一个简单的解决方案,但您没有指定为什么需要regex。如果您知道扩展名肯定是.html(例如不是.htm),那么您可以使用
$lastNos= substr($input, -9, -4);
显然,这是一个简单的解决方案,但您尚未指定为什么需要正则表达式。如果格式始终相同,则不需要正则表达式
$url = "http://address.com/sef-title-of-topic-1111.html";
echo $str = strrev(array_shift(array_reverse(explode(".", array_shift(explode("-",strrev($url)))))));
编辑:对不起,我的php有点生疏了如果格式总是一样的话,你就不需要正则表达式了
$url = "http://address.com/sef-title-of-topic-1111.html";
echo $str = strrev(array_shift(array_reverse(explode(".", array_shift(explode("-",strrev($url)))))));
编辑:对不起,我的php有点生疏了更具体一点。这些数字是固定长度的吗?为什么不能只使用$\u GET变量?URL是否总是采用上述格式?(带破折号,最后一个总是数字等?更具体一点。数字是设定的长度吗?为什么不能只使用$\u GET变量?URL是否总是采用上述格式?(带破折号,最后一个总是数字等?