Это то, что я до сих пор:Regular Expression Fun
^/fe/(?:[0-9A-Za-z]{2,30}?/?+)([$|#|\?]+?)
с /fe/$1
мне нужно поддерживать:
- переписывания "/ Fe/ABC123/# бла" в "/fe/# blah "
- rewriting"/fe/abc123 /? ggg # blah "to"/fe /? ggg # blah "
- переписывание"/fe/abc123 # blah " к "/ Fe/# бла"
- переписывания "/ Fe/абв123? ггг # бла" в "/ Fe /? ггг # бла"
- переписывания "/ Fe/абв123" до "/ Fe /"
- переписывание "/ fe/abc123 /" to "/ fe /"
В настоящее время первые 4 зафиксированы правильно. У меня все еще проблема с двумя последними.
Вы можете играть с этим здесь: http://gskinner.com/RegExr/?35ess
Любая помощь будет оценена :)
Так будет трудность, насколько близко у наше текущее регулярное выражение, которое не соответствует этому? –
Часть '([$ | # | \?] +?)' Должна быть '([$ | # | \?] +)?'. '' 'Прямо после' + 'делает его неживым. То, что вам кажется желательным, - это сделать матч до того, как он станет необязательным. – acdcjunior