与IGNORECASE意外的正则表达式匹配

时间:2019-06-20 14:06:43

标签: python regex python-3.x

我使用以下代码进行了意外匹配。

我在包括re.IGNORECASE选项在内的多个页面上测试了正则表达式,但没有人给出匹配项,但是当我运行它时,我在'PA'上得到了匹配项

import re
def main():
    Names =['PA','SB','PA Solid','SB Solid']

    for Name in Names:
        print (Name)
        print (re.search(Name,'PartBody|Part_Body',re.IGNORECASE))

这是输出,我希望列表中的任何项目都不匹配。

PA
<_sre.SRE_Match object at 0x7ff682876030>
SB
None
PA Solid
None
SB Solid
None

1 个答案:

答案 0 :(得分:0)

在代码中,您交换了模式。您的模式应类似于 re.search(pattern,string [],flags])

names = ['PA','SB','PA Solid','SB Solid']
for name in names:
    print("Name:",name)
    print(re.search(r'PartBody|Part_Body', name,re.IGNORECASE))

输出:

('Name:', 'PA')
None
('Name:', 'SB')
None
('Name:', 'PA Solid')
None
('Name:', 'SB Solid')