2016-12-09 5 views
1

Хейстек: 14201-33-0.htmlRegex для поиска в обратном

иглы: 0

Regex: ((?:-[^-]*))$

Матчи: -0.html

Так что мне нужно, чтобы захватить цифры от последний - до ., за исключением самих символов. Я плохо разбираюсь в регулярном выражении, поэтому не могу точно понять, как точно соответствовать 0. Это может быть 1 или 2 цифры вместо 0.

+2

Проверить https://regex101.com/r/C5lHwc/1 и https://regex101.com/r/C5lHwc/2 – TheLostMind

ответ

2

Вы можете использовать следующее регулярное выражение:

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

Смотрите regex demo

Детали:

  • - - дефис
  • (\d+) - Группа 1: один или более цифры
  • \. - a dot
  • \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]; 
} 
Смежные вопросы