|
|
|
| Помогите с регулярным выражением
есть варианты
thR-123-77.uir
DghgD-gffg-74gfgf-77.html
vcvcvc-fdf7-fdfd34-77.php
|
надо вытащить последнее число между - и точкой (в частном случае получить 77) | |
|
|
|
|
|
|
|
для: SerG7
(22.11.2011 в 09:04)
| | если в остальном шаблон не сильно меняется, то можно обойтись даже без регулярного выражения - например разбить строку explode(); строку по символам "-", взять последний кусок, его еще раз разбить по точке (или узнать позицию точки и отрезать все что после нее) и все. | |
|
|
|
|
|
|
|
для: Гость
(22.11.2011 в 09:19)
| | explode() не подойдет тк шаблон может меняться
DghgD--gffg-74gfgf-77.html
DghgD--gffg_74gfgf-77.html
|
критично что перед последним числом ( именно должно быть число) стоит дефис, а за ним точка | |
|
|
|
|
|
|
|
для: SerG7
(22.11.2011 в 10:17)
| |
<?php
$str = 'DghgD--gffg-74gfgf-77.html';
$res = explode('-', $str);
$res = explode('.', $res[count($res)-1]);
echo $res[0];
|
Не проверял, но должно работать для всех приведенных вами шаблонов. | |
|
|
|
|
|
|
|
для: SerG7
(22.11.2011 в 09:04)
| | Можно начать отталкиваться от следующего регулярного выражения
<?php
$name = "vcvcvc-fdf7-fdfd34-77.php";
$pattern = "|(\d+)\.[a-z]+$|";
preg_match($pattern, $name, $out);
echo $out[1];
?>
|
| |
|
|
|