Обратное регулярное выражение, создать строку из регулярного выражения
Я работаю на многоязычном сайте и решил использовать собственные URL-адреса для каждого языка, например:
/en/cities/paris/
/nl/steden/paris/
Оба указывают на метод Index контроллера Cities.
На каждой странице есть возможность переключать язык, и в моих маршрутах будет отображаться соответствие контроллера, вида и языка.
Поэтому, если я нахожусь на голландской странице, он найдет правильный URL-адрес для английской версии, который будет «города» вместо «steden».
Все работало нормально, пока я не начал использовать более сложные регулярные выражения.
У меня есть эти регулярные выражения, которые будут соответствовать моим желаемым URL:
#^en/cities/([^/]+?)/$#
#^nl/steden/([^/]+?)/$#
В моем коде у меня есть доступ к соответствующей переменной, в этом примере 'paris'. Можно ли было бы «перевернуть» это регулярное выражение и вывести его «en / towns / paris /»
Если нет ... как бы я имел ссылки на разные версии одной и той же страницы, учитывая, что URL-адреса разные ... желательно, чтобы это было как можно более программируемым.
В чем-то похожем вопросе кто-то ответил (http://stackoverflow.com/a/7070734/616398), что суть регулярного выражения состоит в том, чтобы соответствовать бесконечному количеству результатов ... поэтому это может оказаться невозможным.
Довольно просто перейти от строки / URL к набору подходящих критериев для использования в MVC, но наоборот ... не так много, к сожалению.