python正则表达式搜索复杂模式

时间:2015-01-13 08:50:56

标签: python regex escaping

我是关于python的新手。

对我来说很难。

现在我在文件中找到了一些字符串。

我有正则表达式,但我不知道如何在python中使用它。它适用于Eclipse。

下面是正则表达式。

("|')\w+\1\s*=\s*?\w*?\.?suppkdid

这是我尝试的来源。

import fnmatch, re, os

regex =  ''  #Q1. How could it be possible? 

for root, dirnames, filenames in os.walk('C:\the_file_directory'):
    for filename in fnmatch.filter(filenames, '*.odi'):
        with open(os.path.join(root, filename)) as f:
            for line in f:
                                if regex.search(line) is not None: #Q2. Is it right?
                                    print '=========================='
                                    print 'filename : %s' %filename 
                                    print 'line : %s' %line
                                    print '=========================='

1 个答案:

答案 0 :(得分:1)

regex=re.compile(r"""("|')\w+\1\s*=\s*?\w*?\.?suppkdid""")

您需要创建一个正则表达式编译模式。

实际上你可以直接使用

if re.search(r"""("|')\w+\1\s*=\s*?\w*?\.?suppkdid""",line) is not None:

也可以使用

""" 

代替"',因为它们都在您的模式中。