regex - Php Regular Expression Debugging -


i using following regular expression

/^(?p<prefix>admin{1})?[\/]?(?p<controller>[a-z-]+)[\/]?(?p<method>[a-z-]+)[\/]?(?p<parameters>[a-z0-9-\/]+(?=\/page))?[\/]?page\/(?p<page>[0-9]+)?$/i

i want find match using following:

controller/method/parameters/another/something

controller = controller, method = method, parameters = parameters/another/something

but if supplied argument is

controller/method/parameter/another/something/page/1

it should return:

controller = controller, method = method, parameters = parameter/another/something, page = 1

i getting match if supply page/1 argument. debugging wrong regex?

a lookahead can't optional, , parameter regex greedy. solve problem switching positions of page , parameters if page not mandatory parameter!

(and additionally don't need square brackets around escaped slashes!)


Comments