否定的な先読みアサーションが必要です。
^https?://(?!(?:www\.)?site\.com).+
これにより、次のことが得られます。
>>> testdata = '''\
... /page.html => false
... http://www.google.fr => true
... http://site.com => false
... http://site.com/page.html => false
... '''.splitlines()
>>> not_site_com = re.compile(r'^https?://(?!(?:www\.)?site\.com).+')
>>> for line in testdata:
... match = not_site_com.search(line)
... if match: print match.group()
...
http://www.google.fr => true
www.site.com
パターンは と の両方を 除外することに注意してくださいsite.com
。
>>> not_site_com.search('https://www.site.com')
>>> not_site_com.search('https://site.com')
>>> not_site_com.search('https://site-different.com')
<_sre.SRE_Match object at 0x10a548510>