字符串匹配:仅捕获第一次迭代匹配

时间:2014-05-12 14:02:34

标签: python regex string

我试图在Python中创建一个小的迭代字符串匹配函数。我抓住了第一组匹配的字符串,但是第二组匹配的字符串没有被抓住。我添加了字符串转换以确保对象是字符串。我的理解是==运算符匹配值,而不是对象。 (如果我的术语错了,请纠正我)。任何帮助将不胜感激。

#!/usr/bin/python


import re


NameLG_file = open("Name2.txt", "r")
NameSM_file = open("Inc2.txt", "r")
SMList = []
LGList = []


# Assign LG to List and Format
for a in NameLG_file:
    a = a.strip('\n')
    a = a.replace('\"', '')
    a = str(a)
    LGList.extend([a])


# Assign SM to list and format
for c in NameSM_file:
    c = c.strip('\n')
    c = str(c)
    SMList.extend([c])


# Identify and list orphans.
for e in LGList:
    for f in SMList:
        if e == f:
            print True
            print e
            print f
            print ""
            # break
        else:
            print False
            print e
            print f
            print ""

NameLG_file.close()
NameSM_file.close()

Name2.txt包含

"teardown"
"Elite"
Binary

Inc2.txt包含

teardown
Elite

输出结果为:

True
teardown
teardown

False
teardown
Elite

False
Elite
teardown

False
Elite
Elite

False
Binary
teardown

False
Binary
Elite

因此我希望匹配的Elite字符串显示为True。提前谢谢!

1 个答案:

答案 0 :(得分:1)

对于我的观点,问题是您的文件使用Windows EOL(\ r \ n) 所以当你执行a.strip('\ n')时,返回的值是“Elite \ r”而不是“Elite”

解决方案是使用strip()而不是strip('\ n')