2

現在の正規表現は次のとおりです。

url(r'^partner/(?P<author>[-\w]+)/(?P<video>\w+)/(?P<title>\w+)/$', 'video_player'),

私はしばらくの間試みてきましたが、title(最後の引数)が以下の2つのサンプル文字列を受け入れる場所でそれを機能させることができません:

何かアドバイス?

編集

タイトルのパラメータとして渡すと機能しないテキストがあります。アメリカ野球殿堂は、ヤンキースのシーズン後の記念品6個を披露しています。1923年のワールドシリーズの時計です。1926年のワールドシリーズのベーブ・ルースのコウモリ。1956年のドンラーセンのパーフェクトゲームからのヨギベラのグローブ。1962年のワールドシリーズの最後のアウトボール。1996年のワールドシリーズのデレク・ジーターのジャージ。2000サブウェイシリーズのマリアノリベラの帽子。

http://www.buzzfeed.com/sports

4

2 に答える 2

2

\w+英数字とアンダースコアのみに一致する正規表現です。私はあなたが与える例への厳密な解決策とあなたのためにも働くかもしれないより一般的な解決策を示すことを試みます。

グループに含まれていない他の文字と一致させたいので、w必要な特殊文字を追加してカスタムグループを作成する必要があります。グループを形成するには、角かっこ[]で囲みます。グループに文字を追加するには、文字を次々に書き込むだけです。ただし、-範囲を定義できるため、文字を前に配置する必要があります。最初の例では、正規表現に固有の括弧やプラス記号などの文字を一致させる必要があるため、エスケープする必要があります。For +-> use + For(-> use(したがって、最初の例の正規表現は次のよう [\w\(\)\+]+ になります。正規表現のチートシートについては、チートシートまたはダウンロード可能です。 範囲を避けるために最初に-記号を追加した後、および他のエスケープ文字と非エスケープ文字。両方の文字列に一致するグループは、次のようになります。

[-\w\/\?:=\.\s!\(\)"\+]+

これは複雑で、タイトルとしてほとんど何でも取得したいようですので.、改行以外の文字が含まれているので、特別なグループをお勧めします。

正規表現は非常に単純に見えます: .+

于 2012-10-11T02:48:17.800 に答える
0
url(r'^partner/(?P<author>[-\w]+)/(?P<video>\w+)/(?P<title>.*)/$', 'video_player'),

あなたをそこに連れて行くべきです。ビデオの試合後、決勝まですべてをキャプチャするだけです/

于 2012-10-11T03:11:31.847 に答える