2012-03-24 9 views
0
http://www.foobar.com/foo/foo_bar.html?id=abc12A63768adv 
http://www.foobar.com/foo/foo_bar.html?id=gsdfcc6tfsdfgg 
http://www.foobar.com/foo/foo_bar.html?id={8765ABDV-8876-CR56-654A-ADD} 

これは、正規表現を作成する必要のあるURLパターンです。Pythonの正規表現は機能しません。

re.compile('http://www.foobar.com/foo/foo_bar.html?id=+[a-zA-Z0-9-{}]+$') 

しかし、これは私にとっては効果がありません。ここ

+1

まず、 '?'をエスケープしてください。 –

+0

'?'をエスケープする必要があります – JBernardo

答えて

1

あなたはそれがあると解釈され、他の?\を付加することで)エスケープする必要があります正規表現の前の部分の "オプション"フラグ。次に、ドットをエスケープする必要があります。それ以外の場合は、任意の文字に一致します。

[]リストの先頭に一致させようとしている-(ダッシュ)を移動して、正規表現に明らかにダッシュを含め、別の範囲としてダッシュを使用しないようにする必要があります。

最後に、最後に$を使用したのと同じように、先頭から常に一致するように、^を先頭に置いてもかまいません。

1

は、あなたのパターンです:

re.compile('http://www.foobar.com/foo/foo_bar.html\?id=[a-zA-Z0-9{}\-]+$') 
  1. ? "id = +"の+が間違っているので、 "id ="と "id ======"と一致するので、
  2. の正規表現の予約キーワードです
  3. [あなたは文字列全体に一致させるために^追加する必要があり、正規表現予約キーワードが、それは
  4. ジョンが言ったようにエスケープする必要がある
関連する問題