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

python regex search in complex pattern

我是 python 的新手。

这对我来说很难。

现在我正在文件中查找一些字符串。

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

下面是正则表达式。

("|')\w+\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 '=========================='
regex=re.compile(r"""("|')\w+\s*=\s*?\w*?\.?suppkdid""")

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

其实你可以直接使用

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

也用

""" 

而不是 "',因为它们都在您的模式中。