Expressão regular reversa, crie string a partir de regex

Estou trabalhando em um site multilíngue e optei por usar URLs personalizados por idioma também, por exemplo:

/en/cities/paris/
/nl/steden/paris/

Ambos apontam para o método Index do controlador Cities.

Em cada página há uma opção para mudar de idioma e ele irá procurar nas minhas rotas para corresponder a controladora, visão e idioma.

Então, se eu estiver na página holandesa, ele encontrará o URL apropriado para a versão em inglês, que será "cidades" em vez de "steden".

Tudo funcionou bem, até eu começar a usar expressões regulares mais complexas.

Eu tenho essas expressões regulares que correspondem aos meus URLs desejados:

#^en/cities/([^/]+?)/$#
#^nl/steden/([^/]+?)/$#

No meu código eu tenho acesso à variável que está sendo correspondida, 'paris' neste exemplo. Seria possível "reverter" essa expressão regular e imprimir "en / cities / paris /"

Se não, como eu poderia ter links para diferentes versões da mesma página, considerando que os URLs são diferentes ... de preferência, o mais programável possível.

Em uma pergunta um pouco semelhante, alguém respondeu (http://stackoverflow.com/a/7070734/616398) que a essência da regex é para coincidir com um número infinito de resultados .. por isso pode não ser possível.

É muito fácil ir de uma string / URL para um conjunto de critérios combinados para usar em um MVC, mas o contrário ... não muito, infelizmente.

questionAnswers(1)

yourAnswerToTheQuestion