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:
也用
"""
而不是 "
或 '
,因为它们都在您的模式中。
我是 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:
也用
"""
而不是 "
或 '
,因为它们都在您的模式中。