2012-06-05 2 views
2

У меня есть следующее регулярное выражение:Как остановить это жадные

#^/workorder/(.*)/# 

прилагающегося следующий Ури:

/workorder/archive/2/ 

в $ соответствует переменной от preg_match() возвращает archive/2/

Почему не последние / в регулярном выражении останавливают (.*) от bei g жадный? Что я добавлю, чтобы остановить регулярное выражение, когда обнаружен разделитель /?

ответ

3

Это будет делать это.

^/workorder/([^/]*)/ 
+0

Кажется, работает ... спасибо сильно собирался Nutts пытается понять это :) –

+1

Пожалуйста, проверьте ответ от bsdnoobz. Приятно знать о нежелезном переключателе, но осознавать, что производительность его требует. –

2

Для того, чтобы он не жадный (ленивый) использовать

^/workorder/(.*?)/ 

Но это будет использовать откаты, который не является хорошей производительности. Используйте

^/workorder/([^/]*)/ 

Чтобы иметь свой кусок пирога и съесть его быстро