2012-03-22 46 views

回答

4

只有兩項是要知道

  1. ?.在正則表達式特殊字符和需要轉義
  2. 數字檢查,使用預先定義的類\d或定義自己的[0-9]和至少說一個\d+

讓你的正則表達式應該是這個樣子

^http://maps\.google\.com/maps/place\?cid=\d+$ 

如果你想了解更多關於regexes的信息,www.regular-expressions.info是一個很好的開始。

要測試你的正則表達式,你可以使用在線測試器,如gskinner.com/RegExr/。你可以看到你的正則表達式here

2

這應該工作:

web_address = forms.RegexField(regex=r'^http\\:\\/\\/maps\\.google\\.com\\/maps\\/place\\?cid\\=\d+'$', error_messages = {'invalid': _("Not a valid web address.")}) 

IE:

>>> import re 
>>> re.match('^http\\:\\/\\/maps\\.google\\.com\\/maps\\/place\\?cid\\=\d+',  'http://maps.google.com/maps/place?cid=1234', re.IGNORECASE) 
<_sre.SRE_Match object at 0x1251fa8>