/?
を含むパスに一致する正規表現を作成して、それがクエリー文字列かどうかを判断しようとしています。一致するpythonの正規表現照会文字列のパス
サンプル文字列はこのようになります:/mysite/path/to/whatever/?page=1
これまでのところ、私はこれがre.match(r'/\?', '/mysite/path/to/whatever/?page=1')
に一致するだろうと思ったが、それはあなたが必要としない
/?
を含むパスに一致する正規表現を作成して、それがクエリー文字列かどうかを判断しようとしています。一致するpythonの正規表現照会文字列のパス
サンプル文字列はこのようになります:/mysite/path/to/whatever/?page=1
これまでのところ、私はこれがre.match(r'/\?', '/mysite/path/to/whatever/?page=1')
に一致するだろうと思ったが、それはあなたが必要としない
あなたの問題は、re.match
を使用していることです。この関数は文字列の先頭で一致するものを探します。だから、正規表現を'.*/\?'
に変更するか、代わりにre.search
を使用してください。
このコードはすでにあなたのために書かれています。車輪の再発明する必要はありませ:
import urlparse
print urlparse.urlparse('/mysite/path/to/whatever/?page=1')
http://docs.python.org/library/urlparse.html#module-urlparse
+1ですが、DjangoのURLパターンの正規表現でこれを行うことができます。 – cha0site
're.match'は、文字列の先頭にマッチ* *ではなく、完全な一致を探しません。 –
@Petr:申し訳ありませんが、正しいことです。一定。 – cha0site