Umgekehrter regulärer Ausdruck, Zeichenfolge aus Regex erstellen

Ich arbeite an einer mehrsprachigen Website und habe mich dafür entschieden, auch benutzerdefinierte URLs pro Sprache zu verwenden. Beispiel:

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

Beide zeigen auf die Index-Methode des Cities-Controllers.

Auf jeder Seite gibt es eine Option zum Wechseln der Sprache und es wird in meinen Routen nach Controller, Ansicht und Sprache gesucht.

Wenn ich mich also auf der niederländischen Seite befinde, wird dort die richtige URL für die englische Version angezeigt, nämlich "Städte" anstelle von "steden".

Alles hat gut funktioniert, bis ich anfing, komplexere reguläre Ausdrücke zu verwenden.

Ich habe diese regulären Ausdrücke, die mit meinen gewünschten URLs übereinstimmen:

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

In meinem Code habe ich Zugriff auf die Variable, die abgeglichen wird, in diesem Beispiel 'paris'. Wäre es möglich, diesen regulären Ausdruck 'umzukehren' und 'en / cities / paris /' drucken zu lassen?

Wenn nicht, wie würde ich vorgehen, um Links zu verschiedenen Versionen derselben Seite zu haben, wenn man bedenkt, dass die URLs unterschiedlich sind? Am besten so programmierbar wie möglich.

In einer etwas ähnlichen Frage hat jemand geantwortet (http://stackoverflow.com/a/7070734/616398), dass der Kern von Regex darin besteht, mit einer unendlichen Anzahl von Ergebnissen übereinzustimmen. Daher ist dies möglicherweise nicht möglich.

Es ist ziemlich einfach, von einer Zeichenfolge / URL zu einer Reihe übereinstimmender Kriterien zu wechseln, um sie in einer MVC zu verwenden, aber umgekehrt ... leider nicht so sehr.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage