正则表达式中的变量找不到任何匹配项

时间:2019-08-01 16:04:27

标签: python regex

当我尝试使用以下代码查找任何匹配项时,它无法按我的要求工作。 我正在比较两个列表(域和白名单域),以便在我的白名单中查找域。 我已经在变量中测试了一些打印件和字符串,并且得到了不同的结果。第一个代码有什么问题?

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

当我同时打印两种情况时,我得到了以下结果:

  1. 包含.example.com的域列表,格式如下:“。example.com”(\之前。)
  2. 只有一个具有以下格式的字符串:“。example.com”(相同)

两个代码的结果不同,我期望第二个代码,但我找不到问题的原因。

0 个答案:

没有答案