文字列で正規表現変数を埋めたいと思います。正規表現文字列をパラメータで埋める方法
import re
hReg = re.compile("/robert/(?P<action>([a-zA-Z0-9]*))/$")
hMatch = hReg.match("/robert/delete/")
args = hMatch.groupdict()
args変数は、{"action": "delete"}を持つdictになりました。
どのようにこのプロセスを逆にすることができますか? args dictとregexパターンでは、どのように文字列 "/ robert/delete /"を得ることができますか?
このような機能を持つことは可能ですか?
def reverse(pattern, dictArgs):
を追加しました...なぜあなたは必要があります:あなたは
EDIT2でパタパタからそれを得ることができますその文字列を再構築する正規表現?あなたはすでに違いを生むすべてのビットを持っています。それらのビットを取り、文字列を作成する関数を書くだけです。 (つまり、これは不可能ではありませんし、おそらくあなたの時間を無駄にすることはありません) – Tomalak
この "機能"はDjangoでURL文字列を取得するためにreverse()のような関数を実装したいと思います。 Djangoはargsを使って "brute-force"パターンを作成することは可能でしょうか? – 0xBAADF00D
これはPythonのものですが、Djangoのものではありません。しかし、私のポイントはこれです。例えば、/ robe [または] t?/(?P((?!foo)[a-zA-Z0-9] *)) ''?正規表現には、互いに依存するオプション部分と条件部分が含まれているため、マッチリストから元の文字列に戻る方法はありません。したがって、許可されている正規表現の極端に狭いサブセットを定義するか、そのためのパーサーを作成します。おそらくまだいくつかの副作用がなく、厳しく制限されているか、より生産的に時間を費やしています。 ;)正規表現マッチングは片道です。 –
Tomalak