当我尝试使用以下代码查找任何匹配项时,它无法按我的要求工作。 我正在比较两个列表(域和白名单域),以便在我的白名单中查找域。 我已经在变量中测试了一些打印件和字符串,并且得到了不同的结果。第一个代码有什么问题?
Whitelist.txt包含以下域:
.example.com
.google.com
.amazon.com
.test.com
Domains.txt包含以下域:
subdomain.example.com
coogle.es
tested.com
bubble.googlees.com
所选域:subdomain.example.com
我已经测试过此代码(无效)
Whitelist = 'WhitelistDominios.txt'
w = open(Whitelist,"r")
whitelines = w.readlines()
Domains = 'Domains.txt'
f = open(Domains,"r")
lines1 = f.readlines()
for line in lines1: #List with domains to search (sudomain plus domain)
for wline in whitelines: #list with all whitelist domains (whitelist domain with the format '.domain')
regex = wline
regex = regex.replace('.','\.') # to escape wildcard '.'
regex = regex.replace('\n','') # replace \n for joining metacharacter $ at the end of each string
if re.search(regex + '$', line) != None:
print "This domain belongs to us- " + line
Output1(打印正则表达式变量):
\.example\.com
\.google\.com
\.amazon\.com
\.test\.com
此外,我已经使用此代码进行了测试(效果很好)
regex = "\.example\.com"
if re.search(regex + '$', line) != None:
print "This domain belongs to us- " + line
Output2(打印正则表达式变量):
\.example\.com
This domain belongs to us- subdomain.example.com
当我同时打印两种情况时,我得到了以下结果:
两个代码的结果不同,我期望第二个代码,但我找不到问题的原因。