2016-09-26 7 views
1

Я новичок в Stackoverflow, и у меня есть простой вопрос: мне нужно создать регулярное выражение для соответствия пользовательским шаблонам в строке. Я хочу создать регулярное выражение для обнаружения этого URL:PHP custom regex в url

/post-title-92581_1.html 

where $match[0] = 92581 and $match[1] = 1 

я создал это регулярное выражение ((\-[0-9]+)_([1-2]{1}).html) работает отлично, но это возвращает:

$match[0] // -92581 
$match[1] // 1 

если я изменить строку /post-title-925-81_1.html я получить

$match[0] // -81 
$match[1] // 1 

Я хочу получить только ПЕРВЫЙ МАТЧА(-925) без "-" ,

ответ

0

Помещенный - вне скобок ...

-([0-9]+)_([1-2]{1}).html 

Все внутри скобок получает возвращается в матче!

+0

Эта работающая во тьме, именно то, что мне нужно, спасибо. – elaineee

+0

Это дает вам 81 во втором случае, хотя я думал, что вам нужно 925. – JDoe

1

Одним из решений было бы разделить RegEx:

первого регулярное выражение, которое осуществляет поиск "925" (- (\ D +) [-_]),

А второе регулярное выражение, которое осуществляет поиск последняя часть (_ ([1-2] {1}). html $).

+0

Спасибо за ваш ответ, я ценю это, теперь я понимаю, что лучше регулярных выражений, это сработало для меня, спасибо !. – elaineee